Patchwork [04/21] replace qemu_thread_equal API with qemu_thread_is_current

login
register
mail settings
Submitter Paolo Bonzini
Date Feb. 21, 2011, 8:43 a.m.
Message ID <1298277820-8817-5-git-send-email-pbonzini@redhat.com>
Download mbox | patch
Permalink /patch/83790/
State New
Headers show

Comments

Paolo Bonzini - Feb. 21, 2011, 8:43 a.m.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 cpus.c        |   10 ++--------
 qemu-thread.c |    4 ++--
 qemu-thread.h |    2 +-
 3 files changed, 5 insertions(+), 11 deletions(-)
Jan Kiszka - Feb. 21, 2011, 9:41 a.m.
On 2011-02-21 09:43, Paolo Bonzini wrote:
> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  cpus.c        |   10 ++--------
>  qemu-thread.c |    4 ++--
>  qemu-thread.h |    2 +-
>  3 files changed, 5 insertions(+), 11 deletions(-)
> 
> diff --git a/cpus.c b/cpus.c
> index 0f33945..aa30474 100644
> --- a/cpus.c
> +++ b/cpus.c
> @@ -891,11 +891,8 @@ void qemu_cpu_kick_self(void)
>  int qemu_cpu_self(void *_env)
>  {
>      CPUState *env = _env;
> -    QemuThread this;
>  
> -    qemu_thread_self(&this);
> -
> -    return qemu_thread_equal(&this, env->thread);
> +    return qemu_thread_is_current(env->thread);
>  }
>  
>  void qemu_mutex_lock_iothread(void)
> @@ -1023,10 +1020,7 @@ void cpu_stop_current(void)
>  
>  void vm_stop(int reason)
>  {
> -    QemuThread me;
> -    qemu_thread_self(&me);
> -
> -    if (!qemu_thread_equal(&me, &io_thread)) {
> +    if (!qemu_thread_is_current(&io_thread)) {
>          qemu_system_vmstop_request(reason);
>          /*
>           * FIXME: should not return to device code in case
> diff --git a/qemu-thread.c b/qemu-thread.c
> index fbc78fe..28b3f80 100644
> --- a/qemu-thread.c
> +++ b/qemu-thread.c
> @@ -181,9 +181,9 @@ void qemu_thread_self(QemuThread *thread)
>      thread->thread = pthread_self();
>  }
>  
> -int qemu_thread_equal(QemuThread *thread1, QemuThread *thread2)
> +int qemu_thread_is_current(QemuThread *thread)
>  {
> -   return pthread_equal(thread1->thread, thread2->thread);
> +   return pthread_equal(pthread_self(), thread->thread);
>  }
>  
>  void qemu_thread_exit(void *retval)
> diff --git a/qemu-thread.h b/qemu-thread.h
> index 19bb30c..a7e35b4 100644
> --- a/qemu-thread.h
> +++ b/qemu-thread.h
> @@ -38,7 +38,7 @@ void qemu_thread_create(QemuThread *thread,
>                         void *arg);
>  void qemu_thread_signal(QemuThread *thread, int sig);
>  void qemu_thread_self(QemuThread *thread);
> -int qemu_thread_equal(QemuThread *thread1, QemuThread *thread2);
> +int qemu_thread_is_current(QemuThread *thread);
>  void qemu_thread_exit(void *retval);
>  
>  #endif

I'm now in favor of an even more consistent refactoring:
qemu_thread_is_self, qemu_thread_get_self, and qemu_cpu_is_self. See [1].

Jan

[1]
http://git.kiszka.org/?p=qemu-kvm.git;a=commitdiff;h=f5b278f5aec06fe4d140f68caf9b1bf17b4809b2
Paolo Bonzini - Feb. 21, 2011, 11:14 a.m.
On 02/21/2011 10:41 AM, Jan Kiszka wrote:
> I'm now in favor of an even more consistent refactoring:
> qemu_thread_is_self, qemu_thread_get_self, and qemu_cpu_is_self. See [1].
>
> Jan
>
> [1]
> http://git.kiszka.org/?p=qemu-kvm.git;a=commitdiff;h=f5b278f5aec06fe4d140f68caf9b1bf17b4809b2

Ok, I'll replace this patch with yours.

Paolo

Patch

diff --git a/cpus.c b/cpus.c
index 0f33945..aa30474 100644
--- a/cpus.c
+++ b/cpus.c
@@ -891,11 +891,8 @@  void qemu_cpu_kick_self(void)
 int qemu_cpu_self(void *_env)
 {
     CPUState *env = _env;
-    QemuThread this;
 
-    qemu_thread_self(&this);
-
-    return qemu_thread_equal(&this, env->thread);
+    return qemu_thread_is_current(env->thread);
 }
 
 void qemu_mutex_lock_iothread(void)
@@ -1023,10 +1020,7 @@  void cpu_stop_current(void)
 
 void vm_stop(int reason)
 {
-    QemuThread me;
-    qemu_thread_self(&me);
-
-    if (!qemu_thread_equal(&me, &io_thread)) {
+    if (!qemu_thread_is_current(&io_thread)) {
         qemu_system_vmstop_request(reason);
         /*
          * FIXME: should not return to device code in case
diff --git a/qemu-thread.c b/qemu-thread.c
index fbc78fe..28b3f80 100644
--- a/qemu-thread.c
+++ b/qemu-thread.c
@@ -181,9 +181,9 @@  void qemu_thread_self(QemuThread *thread)
     thread->thread = pthread_self();
 }
 
-int qemu_thread_equal(QemuThread *thread1, QemuThread *thread2)
+int qemu_thread_is_current(QemuThread *thread)
 {
-   return pthread_equal(thread1->thread, thread2->thread);
+   return pthread_equal(pthread_self(), thread->thread);
 }
 
 void qemu_thread_exit(void *retval)
diff --git a/qemu-thread.h b/qemu-thread.h
index 19bb30c..a7e35b4 100644
--- a/qemu-thread.h
+++ b/qemu-thread.h
@@ -38,7 +38,7 @@  void qemu_thread_create(QemuThread *thread,
                        void *arg);
 void qemu_thread_signal(QemuThread *thread, int sig);
 void qemu_thread_self(QemuThread *thread);
-int qemu_thread_equal(QemuThread *thread1, QemuThread *thread2);
+int qemu_thread_is_current(QemuThread *thread);
 void qemu_thread_exit(void *retval);
 
 #endif