summaryrefslogtreecommitdiffstats
path: root/src/ccapi/server/win/WorkItem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/ccapi/server/win/WorkItem.cpp')
-rw-r--r--src/ccapi/server/win/WorkItem.cpp16
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;
}