[Spice-devel] [PATCH spice-gtk 2/4] coroutine: replace IN_MAIN_CONTEXT macro

Christophe Fergeau cfergeau at redhat.com
Tue Nov 19 08:04:27 PST 2013


On Tue, Nov 19, 2013 at 04:14:23PM +0100, Marc-André Lureau wrote:
> Use a nicer function, with correct prefix.
> Remove extra "context" from function name
> ---
>  gtk/coroutine.h           | 8 +++++---
>  gtk/coroutine_gthread.c   | 2 +-
>  gtk/coroutine_ucontext.c  | 2 +-
>  gtk/coroutine_winfibers.c | 2 +-
>  gtk/gio-coroutine.c       | 2 +-
>  gtk/spice-channel-priv.h  | 2 +-
>  spice-common              | 2 +-
>  7 files changed, 11 insertions(+), 9 deletions(-)
> 
> diff --git a/gtk/coroutine.h b/gtk/coroutine.h
> index 8d6c406..c7e3069 100644
> --- a/gtk/coroutine.h
> +++ b/gtk/coroutine.h
> @@ -55,8 +55,6 @@ struct coroutine
>  #endif
>  };
>  
> -#define IN_MAIN_CONTEXT (coroutine_self() == NULL || coroutine_is_main_context(coroutine_self()))
> -
>  int coroutine_init(struct coroutine *co);
>  
>  int coroutine_release(struct coroutine *co);
> @@ -69,7 +67,11 @@ void *coroutine_yieldto(struct coroutine *to, void *arg);
>  
>  void *coroutine_yield(void *arg);
>  
> -gboolean coroutine_is_main_context(struct coroutine *co);
> +gboolean coroutine_is_main(struct coroutine *co);
> +
> +static inline gboolean coroutine_self_is_main(void) {
> +	return coroutine_self() == NULL || coroutine_is_main(coroutine_self());
> +}
>  
>  #endif
>  /*
> diff --git a/gtk/coroutine_gthread.c b/gtk/coroutine_gthread.c
> index ab30631..3542a82 100644
> --- a/gtk/coroutine_gthread.c
> +++ b/gtk/coroutine_gthread.c
> @@ -160,7 +160,7 @@ void *coroutine_yield(void *arg)
>  	return coroutine_swap(coroutine_self(), to, arg);
>  }
>  
> -gboolean coroutine_is_main_context(struct coroutine *co)
> +gboolean coroutine_is_main(struct coroutine *co)
>  {
>      return (co == &leader);
>  }
> diff --git a/gtk/coroutine_ucontext.c b/gtk/coroutine_ucontext.c
> index 4689166..6ee3695 100644
> --- a/gtk/coroutine_ucontext.c
> +++ b/gtk/coroutine_ucontext.c
> @@ -145,7 +145,7 @@ void *coroutine_yield(void *arg)
>  	return coroutine_swap(coroutine_self(), to, arg);
>  }
>  
> -gboolean coroutine_is_main_context(struct coroutine *co)
> +gboolean coroutine_is_main(struct coroutine *co)
>  {
>      return (co == &leader);
>  }
> diff --git a/gtk/coroutine_winfibers.c b/gtk/coroutine_winfibers.c
> index 266b1de..bdecea6 100644
> --- a/gtk/coroutine_winfibers.c
> +++ b/gtk/coroutine_winfibers.c
> @@ -112,7 +112,7 @@ void *coroutine_yield(void *arg)
>  	return coroutine_swap(coroutine_self(), to, arg);
>  }
>  
> -gboolean coroutine_is_main_context(struct coroutine *co)
> +gboolean coroutine_is_main(struct coroutine *co)
>  {
>      return (co == &leader);
>  }
> diff --git a/gtk/gio-coroutine.c b/gtk/gio-coroutine.c
> index dd2b9fc..9de9b54 100644
> --- a/gtk/gio-coroutine.c
> +++ b/gtk/gio-coroutine.c
> @@ -252,7 +252,7 @@ void g_object_notify_main_context(GObject *object,
>  {
>      struct signal_data data;
>  
> -    if (IN_MAIN_CONTEXT) {
> +    if (coroutine_self_is_main()) {
>          g_object_notify(object, property_name);
>      } else {
>  
> diff --git a/gtk/spice-channel-priv.h b/gtk/spice-channel-priv.h
> index 351126f..0816061 100644
> --- a/gtk/spice-channel-priv.h
> +++ b/gtk/spice-channel-priv.h
> @@ -186,7 +186,7 @@ void spice_caps_set(GArray *caps, guint32 cap, const gchar *desc);
>  /* coroutine context */
>  #define emit_main_context(object, event, args...)                                      \
>      G_STMT_START {                                                                     \
> -        if (IN_MAIN_CONTEXT) {                                                         \
> +        if (coroutine_self_is_main()) {                                 \
>              do_emit_main_context(G_OBJECT(object), event, &((struct event) { args })); \
>          } else {                                                                       \
>              g_signal_emit_main_context(G_OBJECT(object), do_emit_main_context,         \
> diff --git a/spice-common b/spice-common
> index 1450bb4..5dfdd0c 160000
> --- a/spice-common
> +++ b/spice-common
> @@ -1 +1 @@
> -Subproject commit 1450bb4ddbd8ceab9192e4f84606aa5ae54c5ea6
> +Subproject commit 5dfdd0c0d5174d1d833d4830e898dcd354cf07cf

ACK with that removed.

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/spice-devel/attachments/20131119/cf9c5721/attachment.pgp>


More information about the Spice-devel mailing list