ipc_port_init(port, space, name);
+ if (task_is_classic(current_task())) {
+ IP_SET_CLASSIC(port);
+ }
+
*namep = name;
*portp = port;
ipc_port_init(port, space, name);
+ if (task_is_classic(current_task())) {
+ IP_SET_CLASSIC(port);
+ }
+
*portp = port;
return KERN_SUCCESS;
port->ip_destination = IP_NULL;
ip_unlock(port);
- if (!ipc_port_check_circularity(port, pdrequest)) {
- /* consumes our refs for port and pdrequest */
- ipc_notify_port_destroyed(pdrequest, port);
- return;
- } else {
- /* consume pdrequest and destroy port */
- ipc_port_release_sonce(pdrequest);
- }
-
- ip_lock(port);
- assert(ip_active(port));
- assert(port->ip_pset_count == 0);
- assert(port->ip_mscount == 0);
- assert(port->ip_pdrequest == IP_NULL);
- assert(port->ip_receiver_name == MACH_PORT_NULL);
- assert(port->ip_destination == IP_NULL);
-
- /* fall through and destroy the port */
+ /* consumes our refs for port and pdrequest */
+ ipc_notify_port_destroyed(pdrequest, port);
+ return;
}
/* once port is dead, we don't need to keep it locked */
{
ip_lock(port);
assert(ip_active(port));
- assert(port->ip_receiver_name != MACH_PORT_NULL);
+// assert(port->ip_receiver_name != MACH_PORT_NULL);
assert(port->ip_receiver == space);
/*