@@ -215,9 +215,9 @@ def check_runtime
215215 # @rbs () -> Check
216216 def check_sync_round_trip
217217 actor_id = SecureRandom . uuid
218- caller_process_id = SolidObjects . caller_process . process_record_id
219- check = run_sync_probe ( actor_id )
220- leftovers = remove_probe_records ( actor_id :, caller_process_id :)
218+ probe_registry = ProcessRegistry . new
219+ check = run_sync_probe ( actor_id , probe_registry )
220+ leftovers = remove_probe_records ( actor_id :, probe_registry :)
221221 return check if leftovers . empty? || check . failed?
222222
223223 warn_check (
@@ -226,31 +226,31 @@ def check_sync_round_trip
226226 )
227227 end
228228
229- # @rbs (String) -> Check
230- def run_sync_probe ( actor_id )
229+ # @rbs (String, ProcessRegistry) -> Check
230+ def run_sync_probe ( actor_id , probe_registry )
231+ probe_registry . register ( kind : "caller" , metadata : { execution : "doctor" } )
231232 value = SecureRandom . hex ( 8 )
232233 message_reference = Mailbox . new . enqueue (
233234 ProbeActor . ref ( actor_id ) ,
234235 :ping ,
235236 { value : } ,
236237 kind : "sync"
237238 )
238- result = SynchronousInvocation . new . call ( message_reference , timeout : 5 . seconds )
239+ result = SynchronousInvocation
240+ . new ( process_registry : probe_registry )
241+ . call ( message_reference , timeout : 5 . seconds )
239242 raise Error , "unexpected round-trip result" unless result == value
240243
241244 pass ( :sync_round_trip , "durable synchronous actor call completed without a worker" )
242245 rescue => error
243246 fail_check ( :sync_round_trip , "#{ error . class } : #{ error . message } " )
244247 end
245248
246- # @rbs (actor_id: String, caller_process_id: String? ) -> Array[String]
247- def remove_probe_records ( actor_id :, caller_process_id :)
249+ # @rbs (actor_id: String, probe_registry: ProcessRegistry ) -> Array[String]
250+ def remove_probe_records ( actor_id :, probe_registry :)
248251 leftovers = [ ]
249252 leftovers << "probe actor" unless delete_probe_actor ( actor_id )
250- probe_process_id = SolidObjects . caller_process . process_record_id
251- return leftovers if probe_process_id . nil? || probe_process_id == caller_process_id
252-
253- leftovers << "probe caller process" unless delete_probe_caller_process ( probe_process_id )
253+ leftovers << "probe caller process" unless delete_probe_caller_process ( probe_registry )
254254 leftovers
255255 end
256256
@@ -262,9 +262,13 @@ def delete_probe_actor(actor_id)
262262 false
263263 end
264264
265- # @rbs (String) -> bool
266- def delete_probe_caller_process ( process_id )
267- SolidObjects . caller_process . delete_process_record ( process_id )
265+ # @rbs (ProcessRegistry) -> bool
266+ def delete_probe_caller_process ( probe_registry )
267+ process_record = probe_registry . process_record
268+ return true unless process_record
269+
270+ probe_registry . stop
271+ process_record . delete
268272 true
269273 rescue
270274 false
0 commit comments