Generated from cl_passivelock.h with ROBODoc v3.2.3 on Sat Jan 18 07:05:18 2003
TABLE OF CONTENTS
- Component Library/Passive Lock
- Component Library: Passive Lock/cl_plock_acquire
- Component Library: Passive Lock/cl_plock_construct
- Component Library: Passive Lock/cl_plock_destroy
- Component Library: Passive Lock/cl_plock_excl_acquire
- Component Library: Passive Lock/cl_plock_init
- Component Library: Passive Lock/cl_plock_release
- Component Library: Passive Lock/cl_plock_t
NAME
Passive Lock
DESCRIPTION
The Passive Lock provides synchronization between multiple threads that
are sharing the lock with a single thread holding the lock exclusively.
Passive lock works exclusively between threads and cannot be used in
situations where the caller cannot be put into a waiting state.
The passive lock functions operate a cl_plock_t structure which should
be treated as opaque and should be manipulated only through the provided
functions.
SEE ALSO
Structures:
cl_plock_t
Initialization:
cl_plock_construct, cl_plock_init, cl_plock_destroy
Manipulation
cl_plock_acquire, cl_plock_excl_acquire, cl_plock_release
NAME
cl_plock_acquire
DESCRIPTION
The cl_plock_acquire function acquires a passive lock for
shared access.
SYNOPSIS
void
cl_plock_acquire(
IN cl_plock_t* const p_lock ;
PARAMETERS
p_lock
[in] Pointer to a cl_plock_t structure to acquire.
RETURN VALUE
This function does not return a value.
SEE ALSO
Passive Lock, cl_plock_release, cl_plock_excl_acquire
NAME
cl_plock_construct
DESCRIPTION
The cl_plock_construct function initializes the state of a
passive lock.
SYNOPSIS
void
cl_plock_construct(
IN cl_plock_t* const p_lock ;
PARAMETERS
p_lock
[in] Pointer to a cl_plock_t structure whose state to initialize.
RETURN VALUE
This function does not return a value.
NOTES
Allows calling cl_plock_destroy without first calling cl_plock_init.
Calling cl_plock_construct is a prerequisite to calling any other
passive lock function except cl_plock_init.
SEE ALSO
Passive Lock, cl_plock_init, cl_plock_destroy
NAME
cl_plock_destroy
DESCRIPTION
The cl_plock_destroy function performs any necessary cleanup
of a passive lock.
SYNOPSIS
void
cl_plock_destroy(
IN cl_plock_t* const p_lock ;
PARAMETERS
p_lock
[in] Pointer to a cl_plock_t structure whose state to initialize.
RETURN VALUE
This function does not return a value.
NOTES
cl_plock_destroy performs any necessary cleanup of the specified
passive lock.
This function must only be called if cl_plock_construct or
cl_plock_init has been called. The passive lock must not be held
when calling this function.
SEE ALSO
Passive Lock, cl_plock_construct, cl_plock_init
NAME
cl_plock_excl_acquire
DESCRIPTION
The cl_plock_excl_acquire function acquires exclusive access
to a passive lock.
SYNOPSIS
void
cl_plock_excl_acquire(
IN cl_plock_t* const p_lock ;
PARAMETERS
p_lock
[in] Pointer to a cl_plock_t structure to acquire exclusively.
RETURN VALUE
This function does not return a value.
SEE ALSO
Passive Lock, cl_plock_release, cl_plock_acquire
NAME
cl_plock_init
DESCRIPTION
The cl_plock_init function initializes a passive lock.
SYNOPSIS
cl_status_t
cl_plock_init(
IN cl_plock_t* const p_lock ;
PARAMETERS
p_lock
[in] Pointer to a cl_plock_t structure to initialize.
RETURN VALUES
CL_SUCCESS if the passive lock was initialized successfully.
CL_ERROR otherwise.
NOTES
Allows calling cl_plock_acquire, cl_plock_release,
cl_plock_excl_acquire, and cl_plock_excl_release.
SEE ALSO
Passive Lock, cl_plock_construct, cl_plock_destroy,
cl_plock_excl_acquire, cl_plock_excl_release,
cl_plock_acquire, cl_plock_release
NAME
cl_plock_release
DESCRIPTION
The cl_plock_release function releases a passive lock from
shared or exclusive access.
SYNOPSIS
void
cl_plock_release(
IN cl_plock_t* const p_lock ;
PARAMETERS
p_lock
[in] Pointer to a cl_plock_t structure to release.
RETURN VALUE
This function does not return a value.
SEE ALSO
Passive Lock, cl_plock_acquire, cl_plock_excl_acquire
NAME
cl_plock_t
DESCRIPTION
Passive Lock structure.
The cl_plock_t structure should be treated as opaque and should
be manipulated only through the provided functions.
SYNOPSIS
typedef struct _cl_plock
{
cl_event_t reader_event;
cl_event_t writer_event;
atomic32_t reader_count;
} cl_plock_t;
FIELDS
reader_event
Event used to synchronize shared access to the lock.
writer_event
Event used to synchronize exclusive access to the lock.
reader_count
Number of threads holding the lock for shared access.
SEE ALSO
Passive Lock