home *** CD-ROM | disk | FTP | other *** search
- // -------------------------------------------------------------------------------------
- // nonBusyMutex.h
- // -------------------------------------------------------------------------------------
- #import <mach/cthreads.h>
- #import <stdio.h>
-
- // -------------------------------------------------------------------------------------
- // redefined mutex routines
- #define mutexAlloc nb_mutex_alloc
- #define mutexInit nb_mutex_init
- #define mutexClear nb_mutex_clear
- #define mutexFree nb_mutex_free
- #define mutexTryLock nb_mutex_try_lock
- #define mutexLock nb_mutex_lock
- #define mutexUnlock nb_mutex_unlock
- #define mutexName nb_mutex_name
- #define mutexSetName nb_mutex_set_name
- #define conditionAlloc condition_alloc
- #define conditionFree condition_free
- #define conditionInit condition_init
- #define conditionClear condition_clear
- #define conditionWait nb_condition_wait
- #define conditionBroadcast condition_broadcast
- #define conditionSignal condition_signal
-
- // -------------------------------------------------------------------------------------
- // nonBusy mutex structure
- typedef struct nb_mutex_s {
- struct mutex m;
- struct condition c;
- int l;
- } *nb_mutex_t;
-
- // -------------------------------------------------------------------------------------
- nb_mutex_t nb_mutex_alloc();
- void nb_mutex_init(nb_mutex_t m);
- void nb_mutex_clear(nb_mutex_t m);
- void nb_mutex_free(nb_mutex_t m);
- int nb_mutex_try_lock(nb_mutex_t m);
- void nb_mutex_lock(nb_mutex_t m);
- void nb_mutex_unlock(nb_mutex_t m);
- char *nb_mutex_name(nb_mutex_t m);
- void nb_mutex_set_name(nb_mutex_t m, char *name);
- void nb_condition_wait(condition_t c, nb_mutex_t n);
-
-