From 015911f7dc35163bb73046ca6441a8099fd838b2 Mon Sep 17 00:00:00 2001 From: nanbor Date: Fri, 6 Apr 2001 07:08:44 +0000 Subject: ChangeLogTag:Fri Apr 6 02:02:01 2001 Nanbor Wang --- ace/OS.i | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'ace/OS.i') diff --git a/ace/OS.i b/ace/OS.i index 00b787767b9..920c5b02c31 100644 --- a/ace/OS.i +++ b/ace/OS.i @@ -3101,7 +3101,7 @@ ACE_OS::sema_destroy (ACE_sema_t *s) delete s->name_; return result; } -#else +# else if (s->name_) { ACE_OSCALL (::sem_unlink (s->name_), int, -1, result); @@ -3112,7 +3112,10 @@ ACE_OS::sema_destroy (ACE_sema_t *s) else { ACE_OSCALL (::sem_destroy (s->sema_), int, -1, result); - delete s->sema_; +# if defined (ACE_LACKS_NAMED_POSIX_SEM) + if (s->new_sema_ != 0) +# endif /* ACE_LACKS_NAMED_POSIX_SEM */ + delete s->sema_; s->sema_ = 0; return result; } @@ -3419,6 +3422,7 @@ ACE_OS::sema_init (ACE_sema_t *s, s->name_ = 0; # if defined (ACE_LACKS_NAMED_POSIX_SEM) + s->new_sema_ = 0; if (type == USYNC_PROCESS) { // Let's see if it already exists. @@ -3491,6 +3495,9 @@ ACE_OS::sema_init (ACE_sema_t *s, ACE_NEW_RETURN (s->sema_, sem_t, -1); +# if defined (ACE_LACKS_NAMED_POSIX_SEM) + s->new_sema_ = 1; +# endif /* ACE_LACKS_NAMED_POSIX_SEM */ ACE_OSCALL_RETURN (::sem_init (s->sema_, type != USYNC_THREAD, count), int, -1); -- cgit v1.2.1