File tree Expand file tree Collapse file tree 6 files changed +19
-7
lines changed
source/adapters/native_cpu Expand file tree Collapse file tree 6 files changed +19
-7
lines changed Original file line number Diff line number Diff line change @@ -38,7 +38,9 @@ urContextRetain(ur_context_handle_t hContext) {
38
38
39
39
UR_APIEXPORT ur_result_t UR_APICALL
40
40
urContextRelease (ur_context_handle_t hContext) {
41
- delete hContext;
41
+ hContext->decrementReferenceCount ();
42
+ if (hContext->getReferenceCount () == 0 )
43
+ delete hContext;
42
44
return UR_RESULT_SUCCESS;
43
45
}
44
46
Original file line number Diff line number Diff line change 13
13
#include < ur_api.h>
14
14
15
15
#include " device.hpp"
16
+ #include " common.hpp"
16
17
17
- struct ur_context_handle_t_ {
18
+ struct ur_context_handle_t_ : RefCounted {
18
19
ur_context_handle_t_ (ur_device_handle_t_ *phDevices) : _device{phDevices} {}
19
20
20
21
ur_device_handle_t _device;
Original file line number Diff line number Diff line change @@ -182,7 +182,9 @@ UR_APIEXPORT ur_result_t UR_APICALL urKernelRetain(ur_kernel_handle_t hKernel) {
182
182
183
183
UR_APIEXPORT ur_result_t UR_APICALL
184
184
urKernelRelease (ur_kernel_handle_t hKernel) {
185
- delete hKernel;
185
+ hKernel->decrementReferenceCount ();
186
+ if (hKernel->getReferenceCount () == 0 )
187
+ delete hKernel;
186
188
187
189
return UR_RESULT_SUCCESS;
188
190
}
Original file line number Diff line number Diff line change @@ -95,7 +95,9 @@ urProgramRetain(ur_program_handle_t hProgram) {
95
95
96
96
UR_APIEXPORT ur_result_t UR_APICALL
97
97
urProgramRelease (ur_program_handle_t hProgram) {
98
- delete hProgram;
98
+ hProgram->decrementReferenceCount ();
99
+ if (hProgram->getReferenceCount () == 0 )
100
+ delete hProgram;
99
101
100
102
return UR_RESULT_SUCCESS;
101
103
}
Original file line number Diff line number Diff line change @@ -43,12 +43,16 @@ UR_APIEXPORT ur_result_t UR_APICALL urQueueCreate(
43
43
44
44
UR_APIEXPORT ur_result_t UR_APICALL urQueueRetain (ur_queue_handle_t hQueue) {
45
45
std::ignore = hQueue;
46
+ hQueue->incrementReferenceCount ();
46
47
47
- DIE_NO_IMPLEMENTATION ;
48
+ return UR_RESULT_SUCCESS ;
48
49
}
49
50
50
51
UR_APIEXPORT ur_result_t UR_APICALL urQueueRelease (ur_queue_handle_t hQueue) {
51
- delete hQueue;
52
+ hQueue->decrementReferenceCount ();
53
+ if (hQueue->getReferenceCount () == 0 )
54
+ delete hQueue;
55
+
52
56
return UR_RESULT_SUCCESS;
53
57
}
54
58
Original file line number Diff line number Diff line change 8
8
//
9
9
// ===----------------------------------------------------------------------===//
10
10
#pragma once
11
+ #include " common.hpp"
11
12
12
- struct ur_queue_handle_t_ {};
13
+ struct ur_queue_handle_t_ : RefCounted {};
You can’t perform that action at this time.
0 commit comments