It's ok for me. Thanks! Ruiling
> -----Original Message----- > From: Beignet [mailto:[email protected]] On Behalf Of > Yang, Rong R > Sent: Thursday, August 4, 2016 4:00 PM > To: [email protected] > Subject: Re: [Beignet] [PATCH] Runtime: Add assert of pthread_getspecific. > > Ping for review. > > > -----Original Message----- > > From: Yang, Rong R > > Sent: Monday, June 6, 2016 18:10 > > To: [email protected] > > Cc: Yang, Rong R <[email protected]> > > Subject: [PATCH] Runtime: Add assert of pthread_getspecific. > > > > Signed-off-by: Yang Rong <[email protected]> > > --- > > 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 > > _______________________________________________ > Beignet mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/beignet
