Skip to content

Commit 3cc1582

Browse files
authored
Added resource safety for cl_command_queue (CNugteren#646)
1 parent da40932 commit 3cc1582

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

src/clpp11.hpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,11 @@ using RawCommandQueue = cl_command_queue;
567567
class Queue {
568568
public:
569569
// Constructor based on the regular OpenCL data-type: memory management is handled elsewhere
570-
explicit Queue(const cl_command_queue queue) : queue_(new cl_command_queue) { *queue_ = queue; }
570+
explicit Queue(const cl_command_queue queue)
571+
: queue_(new cl_command_queue, [](cl_command_queue* q) { clReleaseCommandQueue(*q); }) {
572+
clRetainCommandQueue(queue);
573+
*queue_ = queue;
574+
}
571575

572576
// Regular constructor with memory management
573577
explicit Queue(const Context& context, const Device& device)

0 commit comments

Comments
 (0)