Generated from cl_passivelock.h with ROBODoc v3.2.3 on Sat Jan 18 07:05:18 2003

TABLE OF CONTENTS

  1. Component Library/Passive Lock
  2. Component Library: Passive Lock/cl_plock_acquire
  3. Component Library: Passive Lock/cl_plock_construct
  4. Component Library: Passive Lock/cl_plock_destroy
  5. Component Library: Passive Lock/cl_plock_excl_acquire
  6. Component Library: Passive Lock/cl_plock_init
  7. Component Library: Passive Lock/cl_plock_release
  8. Component Library: Passive Lock/cl_plock_t

Component Library/Passive Lock

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

Component Library: Passive Lock/cl_plock_acquire

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

Component Library: Passive Lock/cl_plock_construct

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

Component Library: Passive Lock/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

Component Library: Passive Lock/cl_plock_excl_acquire

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

Component Library: Passive Lock/cl_plock_init

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

Component Library: Passive Lock/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

Component Library: Passive Lock/cl_plock_t

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