summaryrefslogtreecommitdiffstats
path: root/src/ccapi/server/win/WorkItem.cpp
diff options
context:
space:
mode:
authorTom Yu <tlyu@mit.edu>2011-12-12 20:44:14 +0000
committerTom Yu <tlyu@mit.edu>2011-12-12 20:44:14 +0000
commit569d0874b655747abec8a8932276aa151e1eb76c (patch)
tree1489dcb6fc6ad348ca93662496a7bcde4bb1427b /src/ccapi/server/win/WorkItem.cpp
parent873dd9569b5b20c36c64039138a14b7460f20d31 (diff)
downloadkrb5-569d0874b655747abec8a8932276aa151e1eb76c.tar.gz
krb5-569d0874b655747abec8a8932276aa151e1eb76c.tar.xz
krb5-569d0874b655747abec8a8932276aa151e1eb76c.zip
windows ccapiserver: replace Sleep with event wait
Signed-off-by: Kevin Wasserman <kevin.wasserman@painless-security.com> ticket: 7050 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@25538 dc483132-0cff-0310-8789-dd5450dbe970
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 22e209de9f..79a348737d 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;
}