NSDistributedLock class defines an object that multiple applications on multiple hosts can use to restrict access to some shared resource, such as a file.
- macOS 10.10+
The lock is implemented by an entry (such as a file or directory) in the file system. For multiple applications to use an
NSDistributedLock object to coordinate their activities, the lock must be writable on a file system accessible to all hosts on which the applications might be running.
NSDistributedLock doesn’t conform to the
NSLocking protocol, nor does it have a
lock method. The protocol’s
lock() method is intended to block the execution of the thread until successful. For an
NSDistributedLock object, this could mean polling the file system at some predetermined rate. A better solution is to provide the
try() method and let you determine the polling frequency that makes sense for your application.