--- src/lib/howl/MacOSX/macosx_salt.c.orig Wed Mar 30 17:27:46 2005 +++ src/lib/howl/MacOSX/macosx_salt.c Wed Mar 30 17:27:56 2005 @@ -66,6 +66,7 @@ char ** argv) { sw_result err = SW_OKAY; + pthread_mutexattr_t attrs; *salt = (sw_salt) sw_malloc(sizeof(struct _sw_salt)); err = sw_translate_error(*salt, SW_E_MEM); @@ -76,6 +77,8 @@ (*salt)->m_sockets.m_prev = NULL; (*salt)->m_step = SW_FALSE; + pthread_mutexattr_settype(&attrs, PTHREAD_MUTEX_RECURSIVE); + pthread_mutex_init(&(*salt)->m_mutex, &attrs); signal(SIGPIPE, SIG_IGN); exit: @@ -178,6 +181,24 @@ } return SW_OKAY; +} + + +sw_result +sw_salt_lock( + sw_salt self) +{ + sw_assert(self); + pthread_mutex_lock(&self->m_mutex); +} + + +sw_result +sw_salt_unlock( + sw_salt self) +{ + sw_assert(self); + pthread_mutex_unlock(&self->m_mutex); }