[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 13/16] qemu-thread: add qemu_mutex/cond_destroy and
From: |
Corentin Chary |
Subject: |
[Qemu-devel] [PATCH 13/16] qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit |
Date: |
Wed, 16 Jun 2010 09:12:10 +0200 |
Add some missing functions in qemu-thread. Currently qemu-thread
is only used for io-thread but it will used by the vnc server soon
and we need those functions instead of calling pthread directly.
Signed-off-by: Corentin Chary <address@hidden>
---
qemu-thread.c | 22 ++++++++++++++++++++++
qemu-thread.h | 4 ++++
2 files changed, 26 insertions(+), 0 deletions(-)
diff --git a/qemu-thread.c b/qemu-thread.c
index faf4061..fbc78fe 100644
--- a/qemu-thread.c
+++ b/qemu-thread.c
@@ -34,6 +34,15 @@ void qemu_mutex_init(QemuMutex *mutex)
error_exit(err, __func__);
}
+void qemu_mutex_destroy(QemuMutex *mutex)
+{
+ int err;
+
+ err = pthread_mutex_destroy(&mutex->lock);
+ if (err)
+ error_exit(err, __func__);
+}
+
void qemu_mutex_lock(QemuMutex *mutex)
{
int err;
@@ -90,6 +99,15 @@ void qemu_cond_init(QemuCond *cond)
error_exit(err, __func__);
}
+void qemu_cond_destroy(QemuCond *cond)
+{
+ int err;
+
+ err = pthread_cond_destroy(&cond->cond);
+ if (err)
+ error_exit(err, __func__);
+}
+
void qemu_cond_signal(QemuCond *cond)
{
int err;
@@ -168,3 +186,7 @@ int qemu_thread_equal(QemuThread *thread1, QemuThread
*thread2)
return pthread_equal(thread1->thread, thread2->thread);
}
+void qemu_thread_exit(void *retval)
+{
+ pthread_exit(retval);
+}
diff --git a/qemu-thread.h b/qemu-thread.h
index 5ef4a3a..19bb30c 100644
--- a/qemu-thread.h
+++ b/qemu-thread.h
@@ -20,12 +20,14 @@ typedef struct QemuCond QemuCond;
typedef struct QemuThread QemuThread;
void qemu_mutex_init(QemuMutex *mutex);
+void qemu_mutex_destroy(QemuMutex *mutex);
void qemu_mutex_lock(QemuMutex *mutex);
int qemu_mutex_trylock(QemuMutex *mutex);
int qemu_mutex_timedlock(QemuMutex *mutex, uint64_t msecs);
void qemu_mutex_unlock(QemuMutex *mutex);
void qemu_cond_init(QemuCond *cond);
+void qemu_cond_destroy(QemuCond *cond);
void qemu_cond_signal(QemuCond *cond);
void qemu_cond_broadcast(QemuCond *cond);
void qemu_cond_wait(QemuCond *cond, QemuMutex *mutex);
@@ -37,4 +39,6 @@ void qemu_thread_create(QemuThread *thread,
void qemu_thread_signal(QemuThread *thread, int sig);
void qemu_thread_self(QemuThread *thread);
int qemu_thread_equal(QemuThread *thread1, QemuThread *thread2);
+void qemu_thread_exit(void *retval);
+
#endif
--
1.7.1
- [Qemu-devel] [PATCH 09/16] vnc: tight: specific zlib level and filters for each compression level, (continued)
- [Qemu-devel] [PATCH 09/16] vnc: tight: specific zlib level and filters for each compression level, Corentin Chary, 2010/06/16
- [Qemu-devel] [PATCH 01/16] vnc: tight: add JPEG and gradient subencoding with smooth image detection, Corentin Chary, 2010/06/16
- [Qemu-devel] [PATCH 15/16] vnc: add missing lock for vnc_cursor_define(), Corentin Chary, 2010/06/16
- [Qemu-devel] [PATCH 08/16] vnc: tight add PNG encoding, Corentin Chary, 2010/06/16
- [Qemu-devel] [PATCH 10/16] vnc: tight: stop using qdict for palette stuff, Corentin Chary, 2010/06/16
- [Qemu-devel] [PATCH 12/16] vnc: fix tight png memory leak, Corentin Chary, 2010/06/16
- [Qemu-devel] [PATCH 11/16] vnc: encapsulate encoding members, Corentin Chary, 2010/06/16
- [Qemu-devel] [PATCH 16/16] vnc: tight: don't limit png rect size, Corentin Chary, 2010/06/16
- [Qemu-devel] [PATCH 13/16] qemu-thread: add qemu_mutex/cond_destroy and qemu_mutex_exit,
Corentin Chary <=
- [Qemu-devel] [PATCH 14/16] vnc: threaded VNC server, Corentin Chary, 2010/06/16