From: <li...@us...> - 2002-08-09 14:28:59
|
Update of /cvsroot/freeassociation/libical/src/libical In directory usw-pr-cvs1:/tmp/cvs-serv15307 Modified Files: icalerror.c icalmemory.c Log Message: minor pthread fixes Index: icalerror.c =================================================================== RCS file: /cvsroot/freeassociation/libical/src/libical/icalerror.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- icalerror.c 8 Aug 2002 16:45:18 -0000 1.15 +++ icalerror.c 9 Aug 2002 14:28:56 -0000 1.16 @@ -40,11 +40,12 @@ static pthread_once_t icalerrno_key_once = PTHREAD_ONCE_INIT; static void icalerrno_destroy(void* buf) { + free(buf); pthread_setspecific(icalerrno_key, NULL); } static void icalerrno_key_alloc(void) { - pthread_key_create(&icalerrno_key, NULL); + pthread_key_create(&icalerrno_key, icalerrno_destroy); } icalerrorenum *icalerrno_return(void) { @@ -52,12 +53,12 @@ pthread_once(&icalerrno_key_once, icalerrno_key_alloc); - _errno = pthread_getspecific(icalerrno_key); + _errno = (icalerrorenum*) pthread_getspecific(icalerrno_key); if (!_errno) { _errno = malloc(sizeof(icalerrorenum)); - pthread_setspecific(icalerrno_key, _errno); *_errno = ICAL_NO_ERROR; + pthread_setspecific(icalerrno_key, _errno); } return _errno; } Index: icalmemory.c =================================================================== RCS file: /cvsroot/freeassociation/libical/src/libical/icalmemory.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- icalmemory.c 10 Jul 2002 09:11:21 -0000 1.9 +++ icalmemory.c 9 Aug 2002 14:28:56 -0000 1.10 @@ -92,8 +92,8 @@ static pthread_once_t ring_key_once = PTHREAD_ONCE_INIT; static void ring_destroy(void * buf) { - icalmemory_free_ring_byval((buffer_ring *) buf); - pthread_setspecific(ring_key, NULL); + if (buf) icalmemory_free_ring_byval((buffer_ring *) buf); + pthread_setspecific(ring_key, NULL); } static void ring_key_alloc(void) { |