ftp.nice.ch/pub/next/graphics/viewer/ImagePortfolio.1.45.s.tar.gz#/ImagePortfolio_v1.45_src/threads.subproj/nonBusyMutex.h

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.