[Mesa-dev] [PATCH 7/7] mapi: remove u_thread.h

Jose Fonseca jfonseca at vmware.com
Thu Mar 5 03:32:01 PST 2015


On 05/03/15 02:19, Brian Paul wrote:
> Just use c11 threads directly.
> ---
>   src/mapi/Makefile.sources |  3 +--
>   src/mapi/glapi/glapi.h    |  1 -
>   src/mapi/mapi.c           |  1 -
>   src/mapi/stub.c           | 14 +++-----------
>   src/mapi/u_current.c      | 28 ++++++++++++++--------------
>   src/mapi/u_execmem.c      |  2 +-
>   6 files changed, 19 insertions(+), 30 deletions(-)
>
> diff --git a/src/mapi/Makefile.sources b/src/mapi/Makefile.sources
> index 4e92f5e..07063f3 100644
> --- a/src/mapi/Makefile.sources
> +++ b/src/mapi/Makefile.sources
> @@ -18,8 +18,7 @@ MAPI_UTIL_FILES = \
>   	u_current.c \
>   	u_current.h \
>   	u_execmem.c \
> -	u_execmem.h \
> -	u_thread.h
> +	u_execmem.h
>
>   MAPI_BRIDGE_FILES = \
>   	entry.c \
> diff --git a/src/mapi/glapi/glapi.h b/src/mapi/glapi/glapi.h
> index b2d6632..8d991fb 100644
> --- a/src/mapi/glapi/glapi.h
> +++ b/src/mapi/glapi/glapi.h
> @@ -45,7 +45,6 @@
>   #define _GLAPI_H
>
>   #include "util/macros.h"
> -#include "u_thread.h"
>
>
>   #ifdef __cplusplus
> diff --git a/src/mapi/mapi.c b/src/mapi/mapi.c
> index aa6b91b..c235adc 100644
> --- a/src/mapi/mapi.c
> +++ b/src/mapi/mapi.c
> @@ -29,7 +29,6 @@
>   #include <string.h>
>
>   #include "u_current.h"
> -#include "u_thread.h"
>   #include "mapi.h"
>   #include "stub.h"
>   #include "table.h"
> diff --git a/src/mapi/stub.c b/src/mapi/stub.c
> index 953b6c7..05436ba 100644
> --- a/src/mapi/stub.c
> +++ b/src/mapi/stub.c
> @@ -28,10 +28,10 @@
>   #include <stdlib.h>
>   #include <string.h>
>   #include <assert.h>
> +#include "c11/threads.h"
>
>   #include "util/macros.h"
>   #include "u_current.h"
> -#include "u_thread.h"
>   #include "entry.h"
>   #include "stub.h"
>   #include "table.h"
> @@ -54,16 +54,8 @@ static int next_dynamic_slot = MAPI_TABLE_NUM_STATIC;
>   void
>   stub_init_once(void)
>   {
> -#ifdef HAVE_PTHREAD
> -   static pthread_once_t once = PTHREAD_ONCE_INIT;
> -   pthread_once(&once, entry_patch_public);
> -#else
> -   static int first = 1;
> -   if (first) {
> -      first = 0;
> -      entry_patch_public();
> -   }
> -#endif
> +   static once_flag flag = ONCE_FLAG_INIT;
> +   call_once(&flag, entry_patch_public);
>   }
>
>   static int
> diff --git a/src/mapi/u_current.c b/src/mapi/u_current.c
> index 0365724..7e7e275 100644
> --- a/src/mapi/u_current.c
> +++ b/src/mapi/u_current.c
> @@ -48,8 +48,8 @@
>    *                 drivers!  No changes to the public glapi interface.
>    */
>
> +#include "c11/threads.h"
>   #include "u_current.h"
> -#include "u_thread.h"
>
>   #ifndef MAPI_MODE_UTIL
>
> @@ -112,8 +112,8 @@ struct mapi_table *u_current_table =
>      (struct mapi_table *) table_noop_array;
>   void *u_current_context;
>
> -struct u_tsd u_current_table_tsd;
> -static struct u_tsd u_current_context_tsd;
> +tss_t u_current_table_tsd;
> +static tss_t u_current_context_tsd;
>   static int ThreadSafe;
>
>   #endif /* defined(GLX_USE_TLS) */
> @@ -124,8 +124,8 @@ void
>   u_current_destroy(void)
>   {
>   #if !defined(GLX_USE_TLS)
> -   u_tsd_destroy(&u_current_table_tsd);
> -   u_tsd_destroy(&u_current_context_tsd);
> +   tss_delete(u_current_table_tsd);
> +   tss_delete(u_current_context_tsd);
>   #endif
>   }
>
> @@ -135,8 +135,8 @@ u_current_destroy(void)
>   static void
>   u_current_init_tsd(void)
>   {
> -   u_tsd_init(&u_current_table_tsd);
> -   u_tsd_init(&u_current_context_tsd);
> +   tss_create(&u_current_table_tsd, NULL);
> +   tss_create(&u_current_context_tsd, NULL);
>   }
>
>   /**
> @@ -233,7 +233,7 @@ u_current_set_context(const void *ptr)
>   #if defined(GLX_USE_TLS)
>      u_current_context = (void *) ptr;
>   #else
> -   u_tsd_set(&u_current_context_tsd, (void *) ptr);
> +   tss_set(u_current_context_tsd, (void *) ptr);
>      u_current_context = (ThreadSafe) ? NULL : (void *) ptr;
>   #endif
>   }
> @@ -249,9 +249,7 @@ u_current_get_context_internal(void)
>   #if defined(GLX_USE_TLS)
>      return u_current_context;
>   #else
> -   return (ThreadSafe)
> -      ? u_tsd_get(&u_current_context_tsd)
> -      : u_current_context;
> +   return ThreadSafe ? tss_get(u_current_context_tsd) : u_current_context;
>   #endif
>   }
>
> @@ -273,7 +271,7 @@ u_current_set_table(const struct mapi_table *tbl)
>   #if defined(GLX_USE_TLS)
>      u_current_table = (struct mapi_table *) tbl;
>   #else
> -   u_tsd_set(&u_current_table_tsd, (void *) tbl);
> +   tss_set(u_current_table_tsd, (void *) tbl);
>      u_current_table = (ThreadSafe) ? NULL : (void *) tbl;
>   #endif
>   }
> @@ -287,7 +285,9 @@ u_current_get_table_internal(void)
>   #if defined(GLX_USE_TLS)
>      return u_current_table;
>   #else
> -   return (struct mapi_table *) ((ThreadSafe) ?
> -         u_tsd_get(&u_current_table_tsd) : (void *) u_current_table);
> +   if (ThreadSafe)
> +      return (struct mapi_table *) tss_get(u_current_table_tsd);
> +   else
> +      return (struct mapi_table *) u_current_table;
>   #endif
>   }
> diff --git a/src/mapi/u_execmem.c b/src/mapi/u_execmem.c
> index ad6427b..89d5c1d 100644
> --- a/src/mapi/u_execmem.c
> +++ b/src/mapi/u_execmem.c
> @@ -33,7 +33,7 @@
>
>
>   #include "c99_compat.h"
> -#include "u_thread.h"
> +#include "c11/threads.h"
>   #include "u_execmem.h"
>
>
>

Nice cleanup. Series is

Reviewed-by: Jose Fonseca <jfonseca at vmware.com>

Jose


More information about the mesa-dev mailing list