diff options
author | bala <balanatarajan@users.noreply.github.com> | 2004-01-07 19:27:20 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2004-01-07 19:27:20 +0000 |
commit | 2326eb1d56ce858a00104f0f4c85f10cb93635c8 (patch) | |
tree | 038fa9eaf8fda9c690cac36e12fd6d73de2c678b | |
parent | ac79b51064f2c2d31585008a12ffca823a54212a (diff) | |
download | ATCD-2326eb1d56ce858a00104f0f4c85f10cb93635c8.tar.gz |
ChangeLogTag:Wed Jan 7 13:09:27 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu>
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | ace/OS_NS_Thread.h | 11 |
2 files changed, 13 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index cca2bbcd242..e905eb7bfa2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,8 +8,8 @@ Wed Jan 7 13:09:27 2004 Balachandran Natarajan <bala@dre.vanderbilt.edu> ACE_Auto_Event. The idea behind the said checkin was to do a check whether a proper event occured during event_wait (), insted of a spurious wakeup call. This was achieved by checking - the value of is_signaled_. This works great for manual - events. For auto events, we don't set the variable value if we + the value of <is_signaled_>. This works great for manual + events. For auto events, we don't set the variable value if we have waiting threads. This makes the threads calling Auto_Event.wait () to wait for ever. diff --git a/ace/OS_NS_Thread.h b/ace/OS_NS_Thread.h index 39827f52f41..9cfb60f63e0 100644 --- a/ace/OS_NS_Thread.h +++ b/ace/OS_NS_Thread.h @@ -68,6 +68,7 @@ typedef struct # if defined (ACE_PSOS) +// @@ Note, why is this specially defined for PSOS? // Wrapper for NT events on pSOS. class ACE_Export ACE_event_t { @@ -85,6 +86,16 @@ protected: /// "True" if signaled. int is_signaled_; + /// Special bool for auto_events alone + /** + * The semantics of auto events forces us to introduce this extra + * variable to ensure that the thread is not woken up + * spuriously. Please see event_wait and event_timedwait () to see + * how this is used for auto_events. Theoretically this is a hack + * that needs revisiting after x.4 + */ + bool auto_event_signaled_; + /// Number of waiting threads. u_long waiting_threads_; }; |