[Beignet] [PATCH] Runtime: Add assert of pthread_getspecific.
Song, Ruiling
ruiling.song at intel.com
Fri Aug 12 07:39:34 UTC 2016
It's ok for me.
Thanks!
Ruiling
> -----Original Message-----
> From: Beignet [mailto:beignet-bounces at lists.freedesktop.org] On Behalf Of
> Yang, Rong R
> Sent: Thursday, August 4, 2016 4:00 PM
> To: beignet at lists.freedesktop.org
> 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: 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
>
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/beignet
More information about the Beignet
mailing list