0,0 → 1,59 |
/******************************************************************* |
* |
* ttmutex.h 1.0 |
* |
* Mutual exclusion object / dummy generic interface. |
* |
* Copyright 1996-1999 by |
* David Turner, Robert Wilhelm, and Werner Lemberg. |
* |
* This file is part of the FreeType project, and may only be used |
* modified and distributed under the terms of the FreeType project |
* license, LICENSE.TXT. By continuing to use, modify, or distribute |
* this file you indicate that you have read the license and |
* understand and accept it fully. |
* |
* Note: This file provides a generic interface. The implementation |
* to compile depends on your system and the type of |
* library you want to build (either singly-threaded, |
* thread-safe or re-entrant). |
* |
* Please read the technical documentation for more details. |
* |
******************************************************************/ |
|
#ifndef TTMUTEX_H |
#define TTMUTEX_H |
|
#include "ttconfig.h" |
|
|
typedef void* TMutex; /* typeless reference to a mutex */ |
|
#ifdef TT_CONFIG_OPTION_THREAD_SAFE /* thread-safe and re-entrant builds */ |
|
#define MUTEX_Create( mutex ) TT_Mutex_Create ( &(mutex) ) |
#define MUTEX_Destroy( mutex ) TT_Mutex_Delete ( &(mutex) ) |
#define MUTEX_Lock( mutex ) TT_Mutex_Lock ( &(mutex) ) |
#define MUTEX_Release( mutex ) TT_Mutex_Release( &(mutex) ) |
|
LOCAL_DEF void TT_Mutex_Create ( TMutex* mutex ); /* Create a new mutex */ |
LOCAL_DEF void TT_Mutex_Delete ( TMutex* mutex ); /* Delete a mutex */ |
LOCAL_DEF void TT_Mutex_Lock ( TMutex* mutex ); /* Lock a mutex. */ |
LOCAL_DEF void TT_Mutex_Release( TMutex* mutex ); /* Release a mutex */ |
|
#else /* for the single-thread build */ |
|
#define MUTEX_Create( mutex ) /* nothing */ |
#define MUTEX_Destroy( mutex ) /* nothing */ |
#define MUTEX_Lock( mutex ) /* nothing */ |
#define MUTEX_Release( mutex ) /* nothing */ |
|
/* No code will be generated for mutex operations */ |
|
#endif /* TT_CONFIG_OPTION_THREAD_SAFE */ |
|
#endif /* TTMUTEX_H */ |
|
|
/* END */ |