Skip to content

Commit 9311ca6

Browse files
committed
PR feedback
1 parent 58ec557 commit 9311ca6

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

src/RustyObjectStore.jl

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -107,35 +107,34 @@ end
107107
# argument of the @ccall. Currently we pass a pointer to a Base.Event that must be notified to
108108
# wakeup the appropriate task.
109109
Base.@ccallable function notify_result(event_ptr::Ptr{Nothing})::Cint
110-
event = unsafe_pointer_to_objref(event_ptr)
110+
event = unsafe_pointer_to_objref(event_ptr)::Base.Event
111111
notify(event)
112112
return 0
113113
end
114114

115115
# A dict of all tasks that are waiting some result from Rust
116116
# and should thus not be garbage collected.
117117
# This copies the behavior of Base.preserve_handle.
118-
const tasks_in_flight = IdDict()
118+
const tasks_in_flight = IdDict{Task, Int64}()
119119
const preserve_task_lock = Threads.SpinLock()
120120
function preserve_task(x::Task)
121-
lock(preserve_task_lock)
122-
v = get(tasks_in_flight, x, 0)::Int
123-
tasks_in_flight[x] = v + 1
124-
unlock(preserve_task_lock)
121+
@lock preserve_task_lock begin
122+
v = get(tasks_in_flight, x, 0)::Int
123+
tasks_in_flight[x] = v + 1
124+
end
125125
nothing
126126
end
127127
function unpreserve_task(x::Task)
128-
lock(preserve_task_lock)
129-
v = get(tasks_in_flight, x, 0)::Int
130-
if v == 0
131-
unlock(preserve_task_lock)
132-
error("unbalanced call to unpreserve_task for $(typeof(x))")
133-
elseif v == 1
134-
pop!(tasks_in_flight, x)
135-
else
136-
tasks_in_flight[x] = v - 1
128+
@lock preserve_task_lock begin
129+
v = get(tasks_in_flight, x, 0)::Int
130+
if v == 0
131+
error("unbalanced call to unpreserve_task for $(typeof(x))")
132+
elseif v == 1
133+
pop!(tasks_in_flight, x)
134+
else
135+
tasks_in_flight[x] = v - 1
136+
end
137137
end
138-
unlock(preserve_task_lock)
139138
nothing
140139
end
141140

@@ -197,7 +196,7 @@ function throw_on_error(response, operation, exception)
197196
return :( $(esc(:($response.result == 1))) ? throw($exception($response_error_to_string($(esc(response)), $operation))) : $(nothing) )
198197
end
199198

200-
function ensure_wait(event)
199+
function ensure_wait(event::Base.Event)
201200
for i in 1:20
202201
try
203202
return wait(event)
@@ -210,7 +209,7 @@ function ensure_wait(event)
210209
exit(1)
211210
end
212211

213-
function wait_or_cancel(event, response)
212+
function wait_or_cancel(event::Base.Event, response)
214213
try
215214
return wait(event)
216215
catch e

0 commit comments

Comments
 (0)