kern_return_t ipc_pset_remove( ipc_pset_t pset, ipc_port_t port) { kern_return_t kr; assert(ip_active(port)); if (port->ip_in_pset == 0) return KERN_NOT_IN_SET; kr = ipc_mqueue_remove(&port->ip_messages, &pset->ips_messages); return kr; }
kern_return_t ipc_pset_remove( ipc_pset_t pset, ipc_port_t port, wait_queue_link_t *wqlp) { kern_return_t kr; assert(ip_active(port)); if (port->ip_pset_count == 0) return KERN_NOT_IN_SET; kr = ipc_mqueue_remove(&port->ip_messages, &pset->ips_messages, wqlp); if (kr == KERN_SUCCESS) port->ip_pset_count--; return kr; }