| Previous | Next |
| MACH_RCV_INTERRUPTED | MACH_RCV_INVALID_NOTIFY |
MACH_RCV_PORT_CHANGED
Historical race reporting
MACH_RCV_PORT_CHANGED historically described a receive operation started on an individual receive right that was moved into a port set while the call was in progress. Older Mach interface documentation lists that behavior, but current XNU headers retain the constant only for compatibility and mark it as no longer returned.
The underlying concurrency issue still matters even though modern code should not rely on receiving this exact status. Port-set membership and receive-right ownership can change while another thread is blocked in mach_msg. A robust design assigns clear ownership for membership changes and uses active, documented results such as timeout, interruption, port death, or successful receipt to coordinate shutdown and reconfiguration.
How to interpret an occurrence
- Determine whether the value came from an old OS, archived log, compatibility layer, or private implementation.
- Record the port name, port-set name, and thread that performed the membership change.
- Do not build new control flow that waits specifically for this legacy result on current XNU.
- When receiving from a set, use the returned message header to identify the member port that supplied the message.
References
Looking for a different code? Search another status or error code.
