--- deliantra/server/include/util.h 2008/04/11 21:09:53 1.67 +++ deliantra/server/include/util.h 2008/04/15 03:16:02 1.68 @@ -23,7 +23,7 @@ #define UTIL_H__ #define DEBUG_SALLOC 0 -#define PREFER_MALLOC 0 +#define PREFER_MALLOC 1 #if __GNUC__ >= 3 # define is_constant(c) __builtin_constant_p (c) @@ -67,7 +67,7 @@ #elif PREFER_MALLOC # define g_slice_alloc0(s) calloc (1, (s)) # define g_slice_alloc(s) malloc ((s)) -# define g_slice_free1(s,p) free ((s)) +# define g_slice_free1(s,p) free ((p)) #endif // use C0X decltype for auto declarations until ISO C++ sanctifies them (if ever) @@ -608,8 +608,15 @@ #endif #define SMUTEX(name) smutex name = SMUTEX_INITIALISER -#define SMUTEX_LOCK(name) pthread_mutex_lock (&(name)) +#define SMUTEX_LOCK(name) pthread_mutex_lock (&(name)) #define SMUTEX_UNLOCK(name) pthread_mutex_unlock (&(name)) +typedef pthread_cond_t scond; + +#define SCOND(name) scond name = PTHREAD_COND_INITIALIZER +#define SCOND_SIGNAL(name) pthread_cond_signal (&(name)) +#define SCOND_BROADCAST(name) pthread_cond_broadcast (&(name)) +#define SCOND_WAIT(name,mutex) pthread_cond_wait (&(name), &(mutex)) + #endif