module Windows::Synchronize
Constants
- EVENT_ALL_ACCESS
Access rights
- EVENT_MODIFY_STATE
- INFINITE
- MUTEX_ALL_ACCESS
- MUTEX_MODIFY_STATE
- MWMO_ALERTABLE
Wait type constants
- MWMO_INPUTAVAILABLE
- MWMO_WAITALL
- PRIVATE_NAMESPACE_FLAG_DESTROY
Namespace flags
- QS_ALLEVENTS
Wake mask constants
- QS_ALLINPUT
- QS_ALLPOSTMESSAGE
- QS_HOTKEY
- QS_INPUT
- QS_KEY
- QS_MOUSE
- QS_MOUSEBUTTON
- QS_MOUSEMOVE
- QS_PAINT
- QS_POSTMESSAGE
- QS_RAWINPUT
- QS_SENDMESSAGE
- QS_TIMER
- SEMAPHORE_ALL_ACCESS
- SEMAPHORE_MODIFY_STATE
- STATUS_ABANDONED_WAIT_0
- STATUS_PENDING
- STATUS_TIMEOUT
- STATUS_USER_APC
- STATUS_WAIT_0
- WAIT_ABANDONED
- WAIT_ABANDONED_0
- WAIT_FAILED
- WAIT_OBJECT_0
- WAIT_TIMEOUT
Private Instance Methods
HasOverlappedIoCompleted(overlapped)
click to toggle source
Macros
# File lib/windows/synchronize.rb, line 94 def HasOverlappedIoCompleted(overlapped) overlapped[0,4].unpack('L')[0] != STATUS_PENDING end
RUBY_CRITICAL(&block)
click to toggle source
This simulates the RUBY_CRITICAL
macro from rubysig.h, although I've added the begin/ensure wrapper to boot.
# File lib/windows/synchronize.rb, line 101 def RUBY_CRITICAL(&block) critical_section = [0].pack('L') begin InitializeCriticalSection(critical_section) EnterCriticalSection(critical_section) block.call ensure LeaveCriticalSection(critical_section) end end