summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--qemu-thread-win32.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/qemu-thread-win32.c b/qemu-thread-win32.c
index 2edcb1a077..2d2d5abe39 100644
--- a/qemu-thread-win32.c
+++ b/qemu-thread-win32.c
@@ -33,6 +33,12 @@ void qemu_mutex_init(QemuMutex *mutex)
     InitializeCriticalSection(&mutex->lock);
 }
 
+void qemu_mutex_destroy(QemuMutex *mutex)
+{
+    assert(mutex->owner == 0);
+    DeleteCriticalSection(&mutex->lock);
+}
+
 void qemu_mutex_lock(QemuMutex *mutex)
 {
     EnterCriticalSection(&mutex->lock);
@@ -80,6 +86,21 @@ void qemu_cond_init(QemuCond *cond)
     }
 }
 
+void qemu_cond_destroy(QemuCond *cond)
+{
+    BOOL result;
+    result = CloseHandle(cond->continue_event);
+    if (!result) {
+        error_exit(GetLastError(), __func__);
+    }
+    cond->continue_event = 0;
+    result = CloseHandle(cond->sema);
+    if (!result) {
+        error_exit(GetLastError(), __func__);
+    }
+    cond->sema = 0;
+}
+
 void qemu_cond_signal(QemuCond *cond)
 {
     DWORD result;