From 7aaa9032f36560b0cf1947c55201aa72f3f4d37c Mon Sep 17 00:00:00 2001 From: Yichao Yu <yyc1992@gmail.com> Date: Sat, 21 Jun 2014 09:02:11 +0800 Subject: [PATCH] Event.set_support_cb --- pyopencl/c_wrapper/wrap_cl_core.h | 1 + pyopencl/cffi_cl.py | 11 +++++++++++ src/c_wrapper/event.cpp | 7 +++++++ 3 files changed, 19 insertions(+) diff --git a/pyopencl/c_wrapper/wrap_cl_core.h b/pyopencl/c_wrapper/wrap_cl_core.h index 9dc2921b..1445cb7e 100644 --- a/pyopencl/c_wrapper/wrap_cl_core.h +++ b/pyopencl/c_wrapper/wrap_cl_core.h @@ -140,6 +140,7 @@ type_t image__get_fill_type(clobj_t img); error *event__get_profiling_info(clobj_t event, cl_profiling_info param, generic_info *out); error *event__wait(clobj_t event); +void event__set_support_cb(clobj_t _evt, int support); error *event__set_callback(clobj_t _evt, cl_int type, void *pyobj); error *wait_for_events(const clobj_t *_wait_for, uint32_t num_wait_for); // Nanny Event diff --git a/pyopencl/cffi_cl.py b/pyopencl/cffi_cl.py index dbc1ee88..aaeb9ebe 100644 --- a/pyopencl/cffi_cl.py +++ b/pyopencl/cffi_cl.py @@ -883,6 +883,17 @@ class Kernel(_Common): class Event(_Common): _id = 'event' + @classmethod + def _create(cls, ptr): + self = _Common._create.__func__(cls, ptr) + try: + if (self.context._get_cl_version() >= (1, 1) and + get_cl_header_version() >= (1, 1)): + _lib.event__set_support_cb(ptr, 1); + except: + pass + return self + def __init__(self): pass diff --git a/src/c_wrapper/event.cpp b/src/c_wrapper/event.cpp index e53bb0a5..7dd2c3d7 100644 --- a/src/c_wrapper/event.cpp +++ b/src/c_wrapper/event.cpp @@ -198,6 +198,13 @@ event__wait(clobj_t evt) } #if PYOPENCL_CL_VERSION >= 0x1010 +void +event__set_support_cb(clobj_t _evt, int support) +{ + auto evt = static_cast<event*>(_evt); + evt->support_cb = support; +} + error* event__set_callback(clobj_t _evt, cl_int type, void *pyobj) { -- GitLab