diff options
author | nw1 <nw1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-12-22 22:43:43 +0000 |
---|---|---|
committer | nw1 <nw1@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-12-22 22:43:43 +0000 |
commit | bc77899d361915864464c3cf400b31750c9492e7 (patch) | |
tree | 2239d78f6ba07c7e3a2cf9ee9b3c497b9fd92ead | |
parent | c220c571fe44ee569a702b7b4c09f05ee5e8638d (diff) | |
download | ATCD-bc77899d361915864464c3cf400b31750c9492e7.tar.gz |
Added more modifications to semaphore simulation codes for WinCE.
-rw-r--r-- | ace/OS.i | 12 |
1 files changed, 9 insertions, 3 deletions
@@ -2245,7 +2245,7 @@ ACE_OS::sema_trywait (ACE_sema_t *s) s->count_--; if (s->count_ <= 0) ACE_OS::event_reset (&s->count_nonzero_); - return 0; + result = 0; } ACE_OS::mutex_unlock (&s->lock_); @@ -2337,6 +2337,7 @@ ACE_OS::sema_wait (ACE_sema_t *s) } /* NOTREACHED */ # else /* ACE_USES_WINCE_SEMA_SIMULATION */ + int result = -1; while (1) switch (::WaitForSingleObject (s->count_nonzero_, INFINITE)) { @@ -2349,10 +2350,12 @@ ACE_OS::sema_wait (ACE_sema_t *s) s->count_--; if (s->count_ <= 0) ACE_OS::event_reset (&s->count_nonzero_); - return 0; + result = 0; } ACE_OS::mutex_unlock (&s->lock_); + if (result == 0) + return 0; break; default: errno = ::GetLastError (); @@ -2443,6 +2446,7 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv) # else /* ACE_USES_WINCE_SEMA_SIMULATION */ ACE_Time_Value start_time = ACE_OS::gettimeofday (); ACE_Time_Value relative_time = tv; + int result = -1; while (relative_time > ACE_Time_Value::zero) { @@ -2457,10 +2461,12 @@ ACE_OS::sema_wait (ACE_sema_t *s, ACE_Time_Value &tv) s->count_--; if (s->count_ <= 0) ACE_OS::event_reset (&s->count_nonzero_); - return 0; + result = 0; } ACE_OS::mutex_unlock (&s->lock_); + if (result == 0) + return 0; break; case WAIT_TIMEOUT: errno = ETIME; |