home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 October / PCWorld_1998-10_cd.bin / software / prehled / inprise / JRUNTIME.Z / condvar_md.h < prev    next >
C/C++ Source or Header  |  1998-05-08  |  2KB  |  49 lines

  1. /*
  2.  * @(#)condvar_md.h    1.12 96/11/23
  3.  * 
  4.  * Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
  5.  * 
  6.  * This software is the confidential and proprietary information of Sun
  7.  * Microsystems, Inc. ("Confidential Information").  You shall not
  8.  * disclose such Confidential Information and shall use it only in
  9.  * accordance with the terms of the license agreement you entered into
  10.  * with Sun.
  11.  * 
  12.  * SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
  13.  * SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  14.  * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
  15.  * PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
  16.  * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
  17.  * THIS SOFTWARE OR ITS DERIVATIVES.
  18.  * 
  19.  * CopyrightVersion 1.1_beta
  20.  * 
  21.  */
  22.  
  23. #ifndef    _WIN32_CONDVAR_MD_H_
  24. #define    _WIN32_CONDVAR_MD_H_
  25.  
  26. #include <windows.h>
  27. #include "bool.h"
  28. #include "mutex_md.h"
  29. #include "threads_md.h"
  30.  
  31. /*
  32.  * Condition variable object.
  33.  */
  34. typedef    struct condvar {
  35.     HANDLE event;        /* Manual-reset event for notifications */
  36.     unsigned int counter;   /* Current number of notifications */
  37.     unsigned int waiters;   /* Number of threads waiting for notification */
  38.     unsigned int tickets;   /* Number of waiters to be notified */
  39. } condvar_t;
  40.  
  41. bool_t    condvarInit(condvar_t *);
  42. void    condvarDestroy(condvar_t *);
  43. void    condvarWait(sys_thread_t *, condvar_t *, mutex_t *);
  44. void    condvarTimedWait(sys_thread_t *, condvar_t *, mutex_t *, unsigned long);
  45. bool_t    condvarSignal(condvar_t *);
  46. bool_t    condvarBroadcast(condvar_t *);
  47.  
  48. #endif    /* !_WIN32_CONDVAR_MD_H_ */
  49.