diff options
Diffstat (limited to 'src/ccapi/server/win/WorkItem.cpp')
| -rw-r--r-- | src/ccapi/server/win/WorkItem.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/ccapi/server/win/WorkItem.cpp b/src/ccapi/server/win/WorkItem.cpp index 22e209de9..79a348737 100644 --- a/src/ccapi/server/win/WorkItem.cpp +++ b/src/ccapi/server/win/WorkItem.cpp @@ -103,10 +103,26 @@ char* WorkItem::print(char* buf) { return buf; } +int WorkList::initialize() { + hEvent = CreateEvent(NULL, FALSE, FALSE, NULL); + return 0; + } + +int WorkList::cleanup() { + CloseHandle(hEvent); + hEvent = INVALID_HANDLE_VALUE; + return 0; + } + +void WorkList::wait() { + WaitForSingleObject(hEvent, INFINITE); + } + int WorkList::add(WorkItem* item) { EnterCriticalSection(&cs); wl.push_front(item); LeaveCriticalSection(&cs); + SetEvent(hEvent); return 1; } |
