Class: NSConditionLock

Inherits:
NSObject show all

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)

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.

Returns:

  • (Integer)

    The condition associated with the receiver. If no condition has been set, returns 0.

- (Object) initWithCondition(condition)

Initializes a newly allocated NSConditionLock object and sets its condition.

Parameters:

  • condition (Integer)

    The user-defined condition for the lock. The value of condition is user-defined; see the class description for more information.

Returns:

  • (Object)

    An initialized condition lock object; may be different than the original receiver.

- (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.

Parameters:

  • limit (NSDate)

    The date by which the lock must be acquired or the attempt will time out.

Returns:

  • (Boolean)

    YES if the lock is acquired within the time limit, NO otherwise.

- (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.

Parameters:

  • condition (Integer)

    The condition to match on.

Returns:

- (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.

Parameters:

  • condition (Integer)

    The condition to match on.

  • limit (NSDate)

    The date by which the lock must be acquired or the attempt will time out.

Returns:

  • (Boolean)

    YES if the lock is acquired within the time limit, NO otherwise.

- (String) name

Returns the name associated with the receiver.

Returns:

  • (String)

    The name of 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.

Parameters:

  • newName (String)

    The new name for the receiver. This method makes a copy of the specified string.

Returns:

- (Boolean) tryLock

Attempts to acquire a lock without regard to the receiver’s condition. This method returns immediately.

Returns:

  • (Boolean)

    YES if the lock could be acquired, NO otherwise.

- (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.

Returns:

  • (Boolean)

    YES if the lock could be acquired, NO otherwise.

- (Object) unlockWithCondition(condition)

Relinquishes the lock and sets the receiver’s condition.

Parameters:

  • condition (Integer)

    The user-defined condition for the lock. The value of condition is user-defined; see the class description for more information.

Returns: