Successful Wait Side Effects
For some kernel objects, a successful call to WaitForSingleObject
or WaitForMultipleObjects
actually alters the state of the object. A successful call is one in which the function sees that the object was signaled and returns a value relative to WAIT_OBJECT_0
. A call is unsuccessful if the function returns WAIT_TIMEOUT
or WAIT_FAILED
. Objects never have their state altered for unsuccessful calls.
When an object has its state altered, I call this a successful wait side effect. For example, let’s say that a thread is waiting on an auto-reset event object (discussed later in this chapter). When the event object becomes signaled, the function detects this and can return WAIT_OBJECT_0
to the calling thread. However, just ...
Get Windows® via C/C++, Fifth Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.