Rlease old event when old event is a valid event. Signed-off-by: Yang Rong <rong.r.y...@intel.com> --- src/cl_api.c | 5 ++++- src/cl_utils.h | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/src/cl_api.c b/src/cl_api.c index c8d3cee..4288fd1 100644 --- a/src/cl_api.c +++ b/src/cl_api.c @@ -79,8 +79,11 @@ handle_events(cl_command_queue queue, cl_int num, const cl_event *wait_list, cl_event_get_timestamp(e, CL_PROFILING_COMMAND_QUEUED); } - if(event != NULL) + if(event != NULL) { + if(IS_EVENT(*event)) + cl_event_delete(*event); *event = e; + } if(status == CL_ENQUEUE_EXECUTE_DEFER) { cl_event_new_enqueue_callback(e, data, num, wait_list); } diff --git a/src/cl_utils.h b/src/cl_utils.h index fa900a7..f2cd8a4 100644 --- a/src/cl_utils.h +++ b/src/cl_utils.h @@ -149,6 +149,9 @@ do { \ struct _cl_mem_image *IMAGE; \ IMAGE = cl_mem_image(MEM); \ +#define IS_EVENT(EVENT) \ + ((EVENT) && (EVENT)->magic == CL_MAGIC_EVENT_HEADER) + #define CHECK_EVENT(EVENT) \ do { \ if (UNLIKELY(EVENT == NULL)) { \ -- 1.9.1 _______________________________________________ Beignet mailing list Beignet@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/beignet