diff options
author | Dr. David Alan Gilbert <dgilbert@redhat.com> | 2014-01-30 10:20:32 +0000 |
---|---|---|
committer | Michael S. Tsirkin <mst@redhat.com> | 2014-03-09 21:09:38 +0200 |
commit | 4900116e6f0edef6877c0e8a9ca19957d47765c9 (patch) | |
tree | 8ecc45f0f28d012d2ffc8dad01352654444b89c9 /util | |
parent | 8f480de0c91a18d550721f8d9af969ebfbda0793 (diff) | |
download | hqemu-4900116e6f0edef6877c0e8a9ca19957d47765c9.zip hqemu-4900116e6f0edef6877c0e8a9ca19957d47765c9.tar.gz |
Add a 'name' parameter to qemu_thread_create
If enabled, set the thread name at creation (on GNU systems with
pthread_set_np)
Fix up all the callers with a thread name
Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Diffstat (limited to 'util')
-rw-r--r-- | util/compatfd.c | 3 | ||||
-rw-r--r-- | util/qemu-thread-posix.c | 9 | ||||
-rw-r--r-- | util/qemu-thread-win32.c | 2 |
3 files changed, 10 insertions, 4 deletions
diff --git a/util/compatfd.c b/util/compatfd.c index 430a41c..341ada6 100644 --- a/util/compatfd.c +++ b/util/compatfd.c @@ -88,7 +88,8 @@ static int qemu_signalfd_compat(const sigset_t *mask) memcpy(&info->mask, mask, sizeof(*mask)); info->fd = fds[1]; - qemu_thread_create(&thread, sigwait_compat, info, QEMU_THREAD_DETACHED); + qemu_thread_create(&thread, "signalfd_compat", sigwait_compat, info, + QEMU_THREAD_DETACHED); return fds[0]; } diff --git a/util/qemu-thread-posix.c b/util/qemu-thread-posix.c index 0fa6c81..45113b4 100644 --- a/util/qemu-thread-posix.c +++ b/util/qemu-thread-posix.c @@ -394,8 +394,7 @@ void qemu_event_wait(QemuEvent *ev) } } - -void qemu_thread_create(QemuThread *thread, +void qemu_thread_create(QemuThread *thread, const char *name, void *(*start_routine)(void*), void *arg, int mode) { @@ -421,6 +420,12 @@ void qemu_thread_create(QemuThread *thread, if (err) error_exit(err, __func__); +#ifdef _GNU_SOURCE + if (name_threads) { + pthread_setname_np(thread->thread, name); + } +#endif + pthread_sigmask(SIG_SETMASK, &oldset, NULL); pthread_attr_destroy(&attr); diff --git a/util/qemu-thread-win32.c b/util/qemu-thread-win32.c index e42cb77..b9c957b 100644 --- a/util/qemu-thread-win32.c +++ b/util/qemu-thread-win32.c @@ -333,7 +333,7 @@ void *qemu_thread_join(QemuThread *thread) return ret; } -void qemu_thread_create(QemuThread *thread, +void qemu_thread_create(QemuThread *thread, const char *name, void *(*start_routine)(void *), void *arg, int mode) { |