From 6d545abe330ece3909706a988ff24e46b499ace0 Mon Sep 17 00:00:00 2001 From: Jeff Hill Date: Tue, 5 May 1998 16:05:41 +0000 Subject: [PATCH] improved lock owner management --- src/ca/os_depen.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ca/os_depen.h b/src/ca/os_depen.h index 75f150d51..12460416e 100644 --- a/src/ca/os_depen.h +++ b/src/ca/os_depen.h @@ -77,8 +77,8 @@ static char *os_depenhSccsId = "$Id$"; #if defined(vxWorks) # define POST_IO_EV semGive(io_done_sem) # define VXTASKIDNONE 0 -# define LOCK {semTake(client_lock, WAIT_FOREVER); lock_tid=(int)taskIdCurrent;} -# define UNLOCK {lock_tid=VXTASKIDNONE; semGive(client_lock);} +# define LOCK {assert(semTake(client_lock, WAIT_FOREVER)==OK); lock_count++; lock_tid=(int)taskIdCurrent;} +# define UNLOCK {if(--lock_count==0u) lock_tid=VXTASKIDNONE; assert(semGive(client_lock)==OK);} # define EVENTLOCKTEST (lock_tid==(int)taskIdCurrent) # define VXTHISTASKID taskIdSelf() # define abort() taskSuspend(VXTHISTASKID)