This quick puzzle floated past one of our internal discussion groups.
// in process A
hEventA = CreateEvent(NULL, FALSE, TRUE, TEXT("MyNamedEvent"));
// in process B
hEventB = OpenEvent(EVENT_MODIFY_STATE, FALSE, TEXT("MyNamedEvent"));
WaitForSingleObject(hEventB, INFINITE);
In Process B, the OpenEvent succeeds, but the
WaitForSingleObject returns immediately instead of
waiting. Explain.
[Correction: I confused the matter by passing TRUE as
the third parameter, thereby creating an event that is initially
signalled. Change it to FALSE so that the event
is created non-signalled, in which case the
WaitForSingleObject would be expected to wait.]
0 comments