scottc@net-community.com
)rfm@gnu.org
)Version: 1.29
Date: 2004/06/22 22:40:38
Copyright: (C) 1996,2003 Free Software Foundation, Inc.
- Declared in:
- Foundation/NSLock.h
- Conforms to:
- NSLocking
- GCFinalization
Standards:
- MacOS-X
- OpenStep
- GNUstep
Lock that allows user to request it only when an internal integer condition is equal to a particular value. The condition is set on initialization and whenever the lock is relinquished.
Method summaryReturn the current condition of the lock.
Initialize lock with given condition.
Block until acquiring lock.
Try to acquire lock and return before limit,
YES
if succeeded, NO
if
not.
Acquire lock when it is available and the internal condition is equal to value. Blocks until this occurs.
Try to acquire lock, when internal condition is equal
to condition_to_meet, and return before
limit, YES
if succeeded,
NO
if not.
Try to acquire lock regardless of condition and return
immediately, YES
if succeeded,
NO
if not.
Try to acquire lock if condition is equal to
value and return immediately in any case,
YES
if succeeded, NO
if
not.
Relinquish lock.
Relinquish the lock, setting internal condition to value.
- Declared in:
- Foundation/NSLock.h
- Conforms to:
- NSLocking
- GCFinalization
Standards:
- MacOS-X
- OpenStep
- GNUstep
Simplest lock for protecting critical sections of
code.
An NSLock
is used in
multi-threaded applications to protect
critical pieces of code. While one thread holds a
lock within a piece of code, another thread cannot
execute that code until the first thread has given up
its hold on the lock. The limitation of
NSLock
is that you can only lock an
NSLock
once and it must be unlocked
before it can be aquired again.
Other lock
classes, notably
NSRecursiveLock
, have different restrictions.
Block until acquiring lock.
Attempts to aquire
a lock, and waits until it can do so.
Try to acquire lock and return before limit,
YES
if succeeded, NO
if
not.
Attempts to aquire a lock before the date
limit passes. It returns YES
if it can. It returns NO
if it cannot, or
if the current thread already has the lock (but it waits
until the time limit is up before
returning NO
).
Try to acquire lock and return immediately,
YES
if succeeded, NO
if
not.
Attempts to aquire a lock, but returns
immediately if the lock cannot be aquired. It
returns YES
if the lock is aquired. It
returns NO
if the lock cannot be
aquired or if the current thread already has the
lock.
Relinquish lock.
- Declared in:
- Foundation/NSLock.h
- Conforms to:
- NSLocking
- GCFinalization
Standards:
- MacOS-X
- OpenStep
- GNUstep
Allows the lock to be recursively acquired by the same
thread. If the same thread locks the mutex (n) times
then that same thread must also unlock it (n) times
before another thread can acquire the lock.
See
NSLock
for more information about what a lock is. A recursive
lock extends
NSLock
in that you can lock a recursive lock multiple times.
Each lock must be balanced by a cooresponding
unlock, and the lock is not released for another
thread to aquire until the last unlock call is
made (corresponding to the first lock message).
Block until acquiring lock.
Try to acquire lock and return before limit,
YES
if succeeded, NO
if
not.
Attempts to aquire a lock before the date
limit passes. It returns YES
if it can. It returns NO
if it cannot (but
it waits until the time limit is up before
returning NO
).
Try to acquire lock regardless of condition and return
immediately, YES
if succeeded,
NO
if not.
Attempts to aquire a
lock, but returns NO
immediately if the
lock cannot be aquired. It returns YES
if
the lock is aquired. Can be called multiple times to
make nested locks.
Relinquish lock.
- Declared in:
- Foundation/NSLock.h
Standards:
- NotOpenStep
- NotMacOS-X
- GNUstep
Defines the newLockAt:
method.
Initializes the id pointed to by
location with a new instance of the
receiver's class in a thread safe manner, unless
it has been previously initialized. Returns the contents
pointed to by location. The
location is considered unintialized if it
contains nil
.
This method is
used in the GS_INITIALIZED_LOCK macro to initialize
lock variables when it cannot be insured that they can
be initialized in a thread safe environment.
NSLock *my_lock = nil; void function (void) { [GS_INITIALIZED_LOCK(my_lock, NSLock) lock]; do_work (); [my_lock unlock]; }
- Declared in:
- Foundation/NSLock.h
Standards:
- NotOpenStep
- NotMacOS-X
- GNUstep
Defines the newLockAt:
method.
Initializes the id pointed to by
location with a new instance of the
receiver's class in a thread safe manner, unless
it has been previously initialized. Returns the contents
pointed to by location. The
location is considered unintialized if it
contains nil
.
This method is
used in the GS_INITIALIZED_LOCK macro to initialize
lock variables when it cannot be insured that they can
be initialized in a thread safe environment.
NSLock *my_lock = nil; void function (void) { [GS_INITIALIZED_LOCK(my_lock, NSRecursiveLock) lock]; do_work (); [my_lock unlock]; }
- Declared in:
- Foundation/NSLock.h
Standards:
- MacOS-X
- OpenStep
- GNUstep
Protocol defining lock and unlock operations.
Method summaryBlock until acquiring lock.
Relinquish lock.