This is nonBusyMutex.h in view mode; [Download] [Up]
// -------------------------------------------------------------------------------------
// 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);
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.