diff --git a/pyopencl/cffi_cl.py b/pyopencl/cffi_cl.py index f4a3119f0ef5c6c82a1da89decec7be6c6eeab75..1b8d5ef8d37ec091acf6ad40694f8798853ab2b7 100644 --- a/pyopencl/cffi_cl.py +++ b/pyopencl/cffi_cl.py @@ -385,6 +385,9 @@ class Event(_Common): _handle_error(_lib.event__get_profiling_info(self.ptr, param, info)) return _generic_info_to_python(info) + def wait(self): + _handle_error(_lib.event__wait(self.ptr)) + def enqueue_nd_range_kernel(queue, kernel, global_work_size, local_work_size, global_work_offset=None, wait_for=None, g_times_l=False): if wait_for is not None: raise NotImplementedError("wait_for") diff --git a/src/c_wrapper/wrap_cl.cpp b/src/c_wrapper/wrap_cl.cpp index 7b967e2d6d3aeeebb5406ebe8445ab76a67dc182..424d2e713bce66ea324e06ea49b6c62f7e8e7546 100644 --- a/src/c_wrapper/wrap_cl.cpp +++ b/src/c_wrapper/wrap_cl.cpp @@ -1658,10 +1658,8 @@ namespace pyopencl cl_int status_code; PYOPENCL_PRINT_CALL_TRACE("clCreateKernel"); - std::cout << "HUH HAHAH" << std::endl; m_kernel = clCreateKernel(prg.data(), kernel_name.c_str(), &status_code); - std::cout << "HU2" << std::endl; if (status_code != CL_SUCCESS) throw pyopencl::error("clCreateKernel", status_code); } @@ -2177,6 +2175,10 @@ void _free2(void **p, uint32_t size) { return 0; } +::error *event__wait(void *ptr) { + C_HANDLE_ERROR(static_cast(ptr)->wait();); + return 0; +} ::error *_create_kernel(void **ptr_kernel, void *ptr_program, char *name) { pyopencl::program *prg = static_cast(ptr_program); diff --git a/src/c_wrapper/wrap_cl_core.h b/src/c_wrapper/wrap_cl_core.h index 1a9ee9370ead1147b5922be2bf0bfd6e1e43be12..f828939bc945caa318ce71d3276d55ff06560717 100644 --- a/src/c_wrapper/wrap_cl_core.h +++ b/src/c_wrapper/wrap_cl_core.h @@ -41,6 +41,7 @@ error *program__kind(void *ptr_program, int *kind); error *program__get_build_info(void *ptr_program, void *ptr_device, cl_program_build_info param, generic_info *out); error *event__get_profiling_info(void *ptr_event, cl_profiling_info param, generic_info *out); +error *event__wait(void *ptr_event); error *_create_kernel(void **ptr_kernel, void *ptr_program, char *name); error *kernel__set_arg_mem_buffer(void *ptr_kernel, cl_uint arg_index, void *ptr_buffer);