[Beignet] [PATCH] Fix the opencv_test_core/OCL_Arithm random segment fault.

Zhigang Gong zhigang.gong at linux.intel.com
Thu Nov 20 22:20:26 PST 2014


One concern is that if the event type is not CL_COMMAND_USER, then it will not
delete this event even it has been completed.

  if(event->type != CL_COMMAND_USER)
    return;

Is this expected behaviour?

On Thu, Nov 20, 2014 at 01:59:12PM +0800, Yang Rong wrote:
> If call cl_event_delete before call back, then event will be deleted if
> application release event in the call back. So must move the cl_event_delete at the last.
> 
> Signed-off-by: Yang Rong <rong.r.yang at intel.com>
> ---
>  src/cl_event.c | 5 ++---
>  1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/src/cl_event.c b/src/cl_event.c
> index e20342a..dbe81ea 100644
> --- a/src/cl_event.c
> +++ b/src/cl_event.c
> @@ -436,9 +436,6 @@ void cl_event_set_status(cl_event event, cl_int status)
>      event->status = status;
>    pthread_mutex_unlock(&event->ctx->event_lock);
>  
> -  if(event->status <= CL_COMPLETE)
> -    cl_event_delete(event);
> -
>    /* Call user callback */
>    user_cb = event->user_cb;
>    while(user_cb) {
> @@ -489,6 +486,8 @@ void cl_event_set_status(cl_event event, cl_int status)
>      }
>    }
>    event->waits_head = NULL;
> +  if(event->status <= CL_COMPLETE)
> +    cl_event_delete(event);
>  }
>  
>  void cl_event_update_status(cl_event event, int wait)
> -- 
> 1.9.1
> 
> _______________________________________________
> Beignet mailing list
> Beignet at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/beignet


More information about the Beignet mailing list