1966fd0e50
FAILURE -> U_FAILURE etc. X-SVN-Rev: 80
75 lines
2.3 KiB
C
75 lines
2.3 KiB
C
/*
|
|
*******************************************************************************
|
|
* *
|
|
* COPYRIGHT: *
|
|
* (C) Copyright Taligent, Inc., 1997 *
|
|
* (C) Copyright International Business Machines Corporation, 1997-1999 *
|
|
* Licensed Material - Program-Property of IBM - All Rights Reserved. *
|
|
* US Government Users Restricted Rights - Use, duplication, or disclosure *
|
|
* restricted by GSA ADP Schedule Contract with IBM Corp. *
|
|
* *
|
|
*******************************************************************************
|
|
*
|
|
* File UMUTEX.H
|
|
*
|
|
* Modification History:
|
|
*
|
|
* Date Name Description
|
|
* 04/02/97 aliu Creation.
|
|
* 04/07/99 srl rewrite - C interface, multiple mutices
|
|
* 05/13/99 stephen Changed to umutex (from cmutex)
|
|
********************************************************************************
|
|
*/
|
|
|
|
#ifndef UMUTEX_H
|
|
#define UMUTEX_H
|
|
|
|
#include "utypes.h"
|
|
|
|
#ifndef XP_CPLUSPLUS
|
|
typedef void * Mutex;
|
|
#endif
|
|
|
|
/*
|
|
* Code within this library which accesses protected data should
|
|
* instantiate a Mutex object while doing so. Notice that there is
|
|
* only one coarse-grained lock which applies to this entire library,
|
|
* so keep locking short and sweet.
|
|
*
|
|
* For example:
|
|
*
|
|
* void Function(int arg1, int arg2)
|
|
* {
|
|
* static Object* foo; // Shared read-write object
|
|
* Mutex mutex;
|
|
* foo->Method();
|
|
* // When 'mutex' goes out of scope and gets destroyed here
|
|
* // the lock is released
|
|
* }
|
|
*
|
|
* Note: Do NOT use the form 'Mutex mutex();' as that merely
|
|
* forward-declares a function returning a Mutex. This is a common
|
|
* mistake which silently slips through the compiler!! */
|
|
|
|
|
|
/* Mutex data type. */
|
|
typedef void *UMTX;
|
|
|
|
/* Lock a mutex. Pass in NULL if you want the (ick) Single Global
|
|
Mutex. */
|
|
U_CAPI void U_EXPORT2 umtx_lock ( UMTX* mutex );
|
|
|
|
/* Unlock a mutex. Pass in NULL if you want the single global
|
|
mutex. */
|
|
U_CAPI void U_EXPORT2 umtx_unlock ( UMTX* mutex );
|
|
|
|
/* Initialize a mutex. Use it this way:
|
|
umtx_init( &aMutex ); */
|
|
U_CAPI void U_EXPORT2 umtx_init ( UMTX* mutex );
|
|
|
|
#endif /*_CMUTEX*/
|
|
/*eof*/
|
|
|
|
|
|
|