- macOS 10.7+
- Mac Catalyst 13.0+
A service with no outstanding transactions may automatically exit due to inactivity as determined by the system.
This function may be used to manually manage transactions in cases where their automatic management (as described below) does not meet the needs of an XPC service. This function also updates the transaction count used for sudden termination, i.e. vproc_transaction_begin(), and these two interfaces may be used in combination.
The XPC runtime will automatically begin a transaction on behalf of a service when a new message is received. If no reply message is expected, the transaction is automatically ended when the connection event handler returns. If a reply message is created, the transaction will end when the reply message is sent or released. An XPC service may use xpc_transaction_begin() and xpc_transaction_end() to inform the XPC runtime about activity that occurs outside of this common pattern.
When the XPC runtime has determined that the service should exit, the event handlers for all active listening and peer connections will receive
XPC as an indication that they should unwind their existing transactions. After this error is delivered to a connection's event handler, no more messages will be delivered to the connection.