[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