PostThreadMessage/WaitForSingleObject - win32.
SetEvent() ( ) WaitForSingleObject() ( WaitForMultipleObjects(), ) ( ), , , , , .
:
in producer...
...
create item
acquire_lock
push item onto queue
release_lock
SetEvent(...)
...
in consumer...
while(true)
WaitForSingleObject(event)
acquire_lock
pop item from queue
release_lock
process item
release item