[Beignet] [PATCH] Runtime: Add assert of pthread_getspecific.
Yang, Rong R
rong.r.yang at intel.com
Thu Aug 4 07:59:57 UTC 2016
Ping for review.
> -----Original Message-----
> From: Yang, Rong R
> Sent: Monday, June 6, 2016 18:10
> To: beignet at lists.freedesktop.org
> Cc: Yang, Rong R <rong.r.yang at intel.com>
> Subject: [PATCH] Runtime: Add assert of pthread_getspecific.
>
> Signed-off-by: Yang Rong <rong.r.yang at intel.com>
> ---
> src/cl_thread.c | 15 +++++++++------
> 1 file changed, 9 insertions(+), 6 deletions(-)
>
> diff --git a/src/cl_thread.c b/src/cl_thread.c index 40929f2..0780513 100644
> --- a/src/cl_thread.c
> +++ b/src/cl_thread.c
> @@ -145,7 +145,7 @@ cl_event get_current_event(cl_command_queue
> queue) {
> thread_spec_data* spec = __create_thread_spec_data(queue, 1);
> int *magic = pthread_getspecific(thread_magic_key);
> - assert(spec && spec->thread_magic == *magic);
> + assert(spec && magic && spec->thread_magic == *magic);
> return spec->current_event;
> }
>
> @@ -153,7 +153,7 @@ cl_event get_last_event(cl_command_queue queue)
> {
> thread_spec_data* spec = __create_thread_spec_data(queue, 1);
> int *magic = pthread_getspecific(thread_magic_key);
> - assert(spec && spec->thread_magic == *magic);
> + assert(spec && magic && spec->thread_magic == *magic);
> return spec->last_event;
> }
>
> @@ -161,7 +161,7 @@ void set_current_event(cl_command_queue queue,
> cl_event e) {
> thread_spec_data* spec = __create_thread_spec_data(queue, 1);
> int *magic = pthread_getspecific(thread_magic_key);
> - assert(spec && spec->thread_magic == *magic);
> + assert(spec && magic && spec->thread_magic == *magic);
> spec->current_event = e;
> }
>
> @@ -169,7 +169,7 @@ void set_last_event(cl_command_queue queue,
> cl_event e) {
> thread_spec_data* spec = __create_thread_spec_data(queue, 1);
> int *magic = pthread_getspecific(thread_magic_key);
> - assert(spec && spec->thread_magic == *magic);
> + assert(spec && magic && spec->thread_magic == *magic);
> spec->last_event = e;
> }
>
> @@ -204,6 +204,7 @@ cl_gpgpu cl_get_thread_gpgpu(cl_command_queue
> queue)
> if(!spec)
> return NULL;
> int *magic = pthread_getspecific(thread_magic_key);
> + assert(magic);
>
> if (!spec->thread_magic && spec->thread_magic != *magic) {
> //We may get the slot from last thread. So free the resource.
> @@ -232,7 +233,7 @@ void cl_set_thread_batch_buf(cl_command_queue
> queue, void* buf)
> thread_spec_data* spec = __create_thread_spec_data(queue, 1);
> int *magic = pthread_getspecific(thread_magic_key);
>
> - assert(spec && spec->thread_magic == *magic);
> + assert(spec && magic && spec->thread_magic == *magic);
>
> if (spec->thread_batch_buf) {
> cl_gpgpu_unref_batch_buf(spec->thread_batch_buf);
> @@ -244,7 +245,7 @@ void* cl_get_thread_batch_buf(cl_command_queue
> queue) {
> thread_spec_data* spec = __create_thread_spec_data(queue, 1);
> int *magic = pthread_getspecific(thread_magic_key);
>
> - assert(spec && spec->thread_magic == *magic);
> + assert(spec && magic && spec->thread_magic == *magic);
>
> return spec->thread_batch_buf;
> }
> @@ -256,6 +257,7 @@ void cl_invalid_thread_gpgpu(cl_command_queue
> queue)
> thread_spec_data* spec = NULL;
>
> pthread_mutex_lock(&thread_private->thread_data_lock);
> + assert(id);
> spec = thread_private->threads_data[*id];
> assert(spec);
> pthread_mutex_unlock(&thread_private->thread_data_lock);
> @@ -277,6 +279,7 @@ cl_gpgpu cl_thread_gpgpu_take(cl_command_queue
> queue)
> thread_spec_data* spec = NULL;
>
> pthread_mutex_lock(&thread_private->thread_data_lock);
> + assert(id);
> spec = thread_private->threads_data[*id];
> assert(spec);
> pthread_mutex_unlock(&thread_private->thread_data_lock);
> --
> 2.1.4
More information about the Beignet
mailing list