From 01adbe630b4a270e17b641bbfbdaa371980d641b Mon Sep 17 00:00:00 2001 From: Yichao Yu <yyc1992@gmail.com> Date: Sun, 22 Jun 2014 13:53:33 +0800 Subject: [PATCH] event clean up --- pyopencl/c_wrapper/wrap_cl_core.h | 1 - src/c_wrapper/event.cpp | 31 ++++++------------------------- src/c_wrapper/event.h | 3 +-- 3 files changed, 7 insertions(+), 28 deletions(-) diff --git a/pyopencl/c_wrapper/wrap_cl_core.h b/pyopencl/c_wrapper/wrap_cl_core.h index 804848c5..40ac1fc6 100644 --- a/pyopencl/c_wrapper/wrap_cl_core.h +++ b/pyopencl/c_wrapper/wrap_cl_core.h @@ -141,7 +141,6 @@ 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/src/c_wrapper/event.cpp b/src/c_wrapper/event.cpp index a8f03438..facbab0b 100644 --- a/src/c_wrapper/event.cpp +++ b/src/c_wrapper/event.cpp @@ -78,14 +78,14 @@ release_private_use_cb(event *evt) } #endif -bool +void event::release_private() noexcept { if (!m_p) - return true; + return; if (m_p->is_finished()) { delete m_p; - return true; + return; } #if PYOPENCL_CL_VERSION >= 0x1010 if (release_private_use_cb(this)) { @@ -95,33 +95,20 @@ event::release_private() noexcept p->call_finish(); delete p; }); - return true; + return; } catch (const clerror &e) { cleanup_print_error(e.code(), e.what()); } } #endif -#if 0 - std::thread t([] (cl_event evt, event_private *p) { - pyopencl_call_guarded_cleanup(clWaitForEvents, len_arg(evt)); - p->call_finish(); - pyopencl_call_guarded_cleanup(clReleaseEvent, evt); - delete p; - }, data(), m_p); - t.detach(); - return false; -#else wait(); delete m_p; - return true; -#endif } event::~event() { - if (release_private()) { - pyopencl_call_guarded_cleanup(clReleaseEvent, this); - } + release_private(); + pyopencl_call_guarded_cleanup(clReleaseEvent, this); } generic_info @@ -241,12 +228,6 @@ 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) diff --git a/src/c_wrapper/event.h b/src/c_wrapper/event.h index 27ba85dc..6dde1a3e 100644 --- a/src/c_wrapper/event.h +++ b/src/c_wrapper/event.h @@ -18,7 +18,7 @@ class event_private; class event : public clobj<cl_event> { event_private *m_p; // return whether the event need to be released. - PYOPENCL_USE_RESULT bool release_private() noexcept; + void release_private() noexcept; protected: PYOPENCL_INLINE event_private* get_p() const @@ -34,7 +34,6 @@ public: get_profiling_info(cl_profiling_info param) const; void wait() const; #if PYOPENCL_CL_VERSION >= 0x1010 - bool support_cb; template<typename Func> PYOPENCL_INLINE void set_callback(cl_int type, Func &&_func) -- GitLab