Inherits from | |
Conforms to | |
Framework | /System/Library/Frameworks/Foundation.framework |
Availability | Available in Mac OS X v10.0 and later. |
Companion guide | |
Declared in | NSLock.h |
Related sample code |
An NSLock
object is used to coordinate the operation of multiple threads of execution within the same application. An NSLock
object can be used to mediate access to an application’s global data or to protect a critical section of code, allowing it to run atomically.
Warning: The NSLock
class uses POSIX threads to implement its locking behavior. When sending an unlock message to an NSLock
object, you must be sure that message is sent from the same thread that sent the initial lock message. Unlocking a lock from a different thread can result in undefined behavior.
You should not use this class to implement a recursive lock. Calling the lock
method twice on the same thread will lock up your thread permanently. Use the NSRecursiveLock
class to implement recursive locks instead.
Unlocking a lock that is not locked is considered a programmer error and should be fixed in your code. The NSLock
class reports such errors by printing an error message to the console when they occur.
Attempts to acquire a lock before a given time and returns a Boolean value indicating whether the attempt was successful.
- (BOOL)lockBeforeDate:(NSDate *)limit
The time limit for attempting to acquire a lock.
YES
if the lock is acquired before limit, otherwise NO
.
The thread is blocked until the receiver acquires the lock or limit is reached.
NSLock.h
Returns the name associated with the receiver.
- (NSString *)name
The name of the receiver.
NSLock.h
Assigns a name to the receiver.
- (void)setName:(NSString *)newName
The new name for the receiver. This method makes a copy of the specified string.
You can use a name string to identify a lock within your code. Cocoa also uses this name as part of any error descriptions involving the receiver.
NSLock.h
Attempts to acquire a lock and immediately returns a Boolean value that indicates whether the attempt was successful.
- (BOOL)tryLock
YES
if the lock was acquired, otherwise NO
.
NSLock.h
© 2008 Apple Inc. All Rights Reserved. (Last updated: 2008-02-08)