Lines Matching refs:receiver
265 * If the receiver waited with a facility not directly
276 * Found a receiver. see if they can handle the message
353 * the message is queued, given to a receiver, or destroyed.
484 * Post a message to a waiting receiver or enqueue it. If a
485 * receiver is waiting, we can release our reserved space in
502 * Check for a receiver for the message.
508 thread_t receiver;
511 receiver = wait_queue_wakeup64_identity_locked(
518 if (receiver == THREAD_NULL) {
528 * If the receiver waited with a facility not directly
533 if (receiver->ith_state != MACH_RCV_IN_PROGRESS) {
534 thread_unlock(receiver);
544 msize = ipc_kmsg_copyout_size(kmsg, receiver->map);
545 if (receiver->ith_msize <
546 (msize + REQUESTED_TRAILER_SIZE(thread_is_64bit(receiver), receiver->ith_option))) {
547 receiver->ith_msize = msize;
548 receiver->ith_state = MACH_RCV_TOO_LARGE;
550 receiver->ith_state = MACH_MSG_SUCCESS;
555 * receiver thread didn't specifically ask for special too
558 if ((receiver->ith_state == MACH_MSG_SUCCESS) ||
559 !(receiver->ith_option & MACH_RCV_LARGE)) {
561 receiver->ith_kmsg = kmsg;
562 receiver->ith_seqno = mqueue->imq_seqno++;
563 thread_unlock(receiver);
575 receiver->ith_kmsg = IKM_NULL;
576 receiver->ith_seqno = 0;
577 thread_unlock(receiver);
888 * A receiver discovered that there was a message on the queue