We have run userclients under the KEXT umbrella for two decades now.
We have guaranteed access to a single user client at a time internally with explicit userclient open and close external methods and an 'opened' state variable maintained in the driver itself.
In the event that a client failed to close it's connection, because of a logic fault or crash, the exclusion variable would be cleared when the clientDied method was called.
In the land of the DEXT, the userclient is no longer explicitly associated with a particular task nor is there a standard clientDied type notification.
Is there any implicit guarantee of exclusive access to the driver through the userclient that we do not make our selves? In other words, if I had several suitably entitled client apps, could they potentially interleave their accesses in concurrent sessions so as to interfere?
If I find it necessary to prevent concurrent access, is there any guarantee that open IOService connections to userclients will be closed if the app terminates sloppily or unexpectedly?
Thanks, John Brisbin