Class: NSConditionLock
Overview
The NSConditionLock class defines objects whose locks can be associated with specific, user-defined conditions. Using an NSConditionLock object, you can ensure that a thread can acquire a lock only if a certain condition is met. Once it has acquired the lock and executed the critical section of code, the thread can relinquish the lock and set the associated condition to something new. The conditions themselves are arbitrary: you define them as needed for your application.
Instance Method Summary (collapse)
-
- condition
Returns the condition associated with the receiver.
-
- initWithCondition:
Initializes a newly allocated NSConditionLock object and sets its condition.
-
- lockBeforeDate:
Attempts to acquire a lock before a specified moment in time.
-
- lockWhenCondition:
Attempts to acquire a lock.
-
- lockWhenCondition:beforeDate:
Attempts to acquire a lock before a specified moment in time.
-
- name
Returns the name associated with the receiver.
-
- setName:
Assigns a name to the receiver.
-
- tryLock
Attempts to acquire a lock without regard to the receiver’s condition.
-
- tryLockWhenCondition:
Attempts to acquire a lock if the receiver’s condition is equal to the specified condition.
-
- unlockWithCondition:
Relinquishes the lock and sets the receiver’s condition.
Methods inherited from NSObject
#!, #!=, #!~, #, #==, #===, #=~, #Rational, #__callee__, #__method__, #__send__, #__type__, `, alloc, allocWithZone:, #autoContentAccessingProxy, autoload, autoload?, autorelease_pool, #awakeAfterUsingCoder:, binding, block_given?, caller, cancelPreviousPerformRequestsWithTarget:, cancelPreviousPerformRequestsWithTarget:selector:object:, catch, class, classFallbacksForKeyedArchiver, #classForCoder, #classForKeyedArchiver, classForKeyedUnarchiver, #clone, conformsToProtocol:, #copy, copyWithZone:, #dealloc, #define_singleton_method, description, display, #doesNotRecognizeSelector:, #dup, #enum_for, #eql?, #equal?, #extend, fail, #finalize, format, #forwardInvocation:, #forwardingTargetForSelector:, framework, #freeze, #frozen?, getpass, gets, global_variables, #init, initialize, #initialize_clone, #initialize_copy, #initialize_dup, #inspect, instanceMethodForSelector:, instanceMethodSignatureForSelector:, #instance_eval, #instance_exec, #instance_of?, #instance_variable_defined?, #instance_variable_get, #instance_variable_set, #instance_variables, instancesRespondToSelector:, isSubclassOfClass:, #is_a?, iterator?, #kind_of?, lambda, load, load_bridge_support_file, load_plist, local_variables, loop, #method, #methodForSelector:, #methodSignatureForSelector:, #methods, #mutableCopy, mutableCopyWithZone:, new, #nil?, open, p, #performSelector:onThread:withObject:waitUntilDone:, #performSelector:onThread:withObject:waitUntilDone:modes:, #performSelector:withObject:afterDelay:, #performSelector:withObject:afterDelay:inModes:, #performSelectorInBackground:withObject:, #performSelectorOnMainThread:withObject:waitUntilDone:, #performSelectorOnMainThread:withObject:waitUntilDone:modes:, print, printf, #private_methods, proc, #protected_methods, #public_method, #public_methods, #public_send, putc, puts, raise, rand, readline, readlines, #replacementObjectForCoder:, #replacementObjectForKeyedArchiver:, require, resolveClassMethod:, resolveInstanceMethod:, #respond_to?, #respond_to_missing?, select, #send, setVersion:, #singleton_methods, sprintf, srand, superclass, #taint, #tainted?, #tap, test, throw, #to_plist, #to_s, trace_var, trap, #trust, #untaint, untrace_var, #untrust, #untrusted?, version
Constructor Details
This class inherits a constructor from NSObject
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class NSObject
Instance Method Details
- (Integer) condition
Returns the condition associated with the receiver.
- (Object) initWithCondition(condition)
Initializes a newly allocated NSConditionLock object and sets its condition.
- (Boolean) lockBeforeDate(limit)
Attempts to acquire a lock before a specified moment in time. The condition associated with the receiver isn’t taken into account in this operation. This method blocks the thread’s execution until the receiver acquires the lock or limit is reached.
- (Object) lockWhenCondition(condition)
Attempts to acquire a lock. The receiver’s condition must be equal to condition before the locking operation will succeed. This method blocks the thread’s execution until the lock can be acquired.
- (Boolean) lockWhenCondition(condition, beforeDate:limit)
Attempts to acquire a lock before a specified moment in time. The receiver’s condition must be equal to condition before the locking operation will succeed. This method blocks the thread’s execution until the lock can be acquired or limit is reached.
- (String) name
Returns the name associated with the receiver.
- (Object) setName(newName)
Assigns a name to the receiver. You can use a name string to identify a condition lock within your code. Cocoa also uses this name as part of any error descriptions involving the receiver.
- (Boolean) tryLock
Attempts to acquire a lock without regard to the receiver’s condition. This method returns immediately.
- (Boolean) tryLockWhenCondition(condition)
Attempts to acquire a lock if the receiver’s condition is equal to the specified condition. As part of its implementation, this method invokes lockWhenCondition:beforeDate:. This method returns immediately.
- (Object) unlockWithCondition(condition)
Relinquishes the lock and sets the receiver’s condition.