## NAME

ACE_cond_t - This structure is used to implement condition variables on VxWorks and Win32.

## SYNOPSIS

    #include <ace/OS.h>

    class ACE_cond_t
    {
      public:
        friend class ACE_OS;
        long waiters (void) const;
      protected:
        long waiters_;
        ACE_thread_mutex_t waiters_lock_;
        ACE_sema_t sema_;
        ACE_sema_t waiters_done_;
        HANDLE waiters_done_;
        size_t was_broadcast_;
    };

## DESCRIPTION

At the current time, this stuff only works for threads within the same process.

## PUBLIC MEMBERS

    friend class ACE_OS;

    long waiters (void) const;

Returns the number of waiters.

## PROTECTED MEMBERS

    long waiters_;

Number of waiting threads.

    ACE_thread_mutex_t waiters_lock_;

Serialize access to the waiters count.

    ACE_sema_t sema_;

Queue up threads waiting for the condition to become signaled.

    ACE_sema_t waiters_done_;

A semaphore used by the broadcast/signal thread to wait for all the waiting thread(s) to wake up and be released from the semaphore.

    HANDLE waiters_done_;

An auto reset event used by the broadcast/signal thread to wait for the waiting thread(s) to wake up and get a chance at the semaphore.

    size_t was_broadcast_;

Keeps track of whether we were broadcasting or just signaling.

## AUTHOR

Doug Schmidt `schmidt@cs.wustl.edu`, Jesper S. M|ller `stophph@diku.dk`, and a cast of thousands...

## The ACE_Sched_Priority type should be used for platform-

independent thread and process priorities, by convention. int should be used for OS-specific priorities.

## typedef for the _stat data structure

## Giving unique ACE scoped names for some important

RTSignal-Related constants. Becuase sometimes, different platforms use different names for these constants.

## LIBRARY

ace