@@ -340,7 +340,6 @@ final class HvProcessTests: XCTestCase {
340340
341341 func testAbsoluteStopBudgetBeginsBeforeLifecycleMutexAcquisition( ) {
342342 let lifecycleMutex = DoryProcessLifecycleMutex ( )
343- lifecycleMutex. lock ( )
344343 let deadlineStartedAt = DispatchTime . now ( )
345344 let deadline = DoryProcessStopDeadline (
346345 gracefulTimeout: 0.04 ,
@@ -358,14 +357,13 @@ final class HvProcessTests: XCTestCase {
358357 let waiter = DispatchGroup ( )
359358 waiter. enter ( )
360359 defer { waiter. leave ( ) }
361- let mutexRelease = DispatchSemaphore ( value: 0 )
362- DispatchQueue . global ( qos: . userInitiated) . asyncAfter ( deadline: . now( ) + 0.07 ) {
363- lifecycleMutex. unlock ( )
364- mutexRelease. signal ( )
365- }
366360
367- XCTAssertTrue ( lifecycleMutex. lock ( until: deadline. final) )
368- lifecycleMutex. unlock ( )
361+ var observedLockDeadline : DispatchTime ?
362+ XCTAssertTrue ( lifecycleMutex. lock ( until: deadline. final) { deadline in
363+ observedLockDeadline = deadline
364+ return . success
365+ } )
366+ XCTAssertEqual ( observedLockDeadline, deadline. final)
369367 var forced = false
370368 var observedWaitDeadlines : [ DispatchTime ] = [ ]
371369 let terminated = HvProcess . waitForTermination (
@@ -380,9 +378,8 @@ final class HvProcessTests: XCTestCase {
380378 XCTAssertFalse ( terminated)
381379 XCTAssertTrue ( forced)
382380 XCTAssertEqual ( observedWaitDeadlines, [ deadline. graceful, deadline. final] )
383- XCTAssertEqual ( mutexRelease. wait ( timeout: . now( ) + 0.1 ) , . success)
384- // Both waits consumed the one deadline created before mutex acquisition. Inspecting those
385- // exact arguments proves the forced phase was not restarted after the mutex cleared;
381+ // Mutex acquisition and both termination waits consumed the one deadline created at API
382+ // entry. Inspecting those exact arguments proves neither phase can restart the budget;
386383 // host scheduler latency is deliberately not treated as process-supervisor behavior.
387384 }
388385
0 commit comments