A Handy Thread Synchronization Object Chart

Table 9-3 summarizes how the various kernel objects behave with respect to thread synchronization.

Table 9-3. Kernel Objects and Thread Synchronization

Object

When Nonsignaled

When Signaled

Successful Wait Side Effect

Process

While process is still active

When process terminates (ExitProcess, TerminateProcess)

None

Thread

While thread is still active

When thread terminates (ExitThread, TerminateThread)

None

Job

When job’s time has not expired

When job time expires

None

File

When I/O request is pending

When I/O request completes

None

Console input

No input exists

When input is available

None

File change notifications

No files have changed

When file system detects changes

Resets notification

Auto-reset event

ResetEvent, PulseEvent

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.