@@ -863,12 +863,13 @@ deschedule Interruptable thread@Thread {
863
863
simstate') = unblockThreads False vClock [l_labelled tid'] simstate
864
864
-- the thread is stepped when we Yield
865
865
! trace <- deschedule Yield thread' simstate'
866
- return $ SimPORTrace time tid tstep tlbl (EventDeschedule Yield )
867
- $ SimPORTrace time tid tstep tlbl (EventThrowToUnmasked tid ')
866
+ return $ SimPORTrace time tid tstep tlbl (EventThrowToUnmasked tid' )
867
+ $ SimPORTrace time tid tstep tlbl (EventEffect vClock effect ')
868
868
-- TODO: step
869
869
$ traceMany [ (time, tid'', (- 1 ), tlbl'', EventThrowToWakeup )
870
870
| tid'' <- unblocked
871
871
, let tlbl'' = lookupThreadLabel tid'' threads ]
872
+ $ SimPORTrace time tid tstep tlbl (EventDeschedule Yield )
872
873
trace
873
874
874
875
deschedule Interruptable thread@ Thread {threadId = tid,
@@ -890,15 +891,19 @@ deschedule Interruptable thread@Thread{threadId = tid,
890
891
control = advanceControl (threadStepId thread) control }
891
892
892
893
deschedule (Blocked _blockedReason) thread@ Thread { threadId = tid
894
+ , threadStep = tstep
895
+ , threadLabel = tlbl
893
896
, threadThrowTo = _ : _
894
897
, threadMasking = maskst
895
- , threadEffect = effect } simstate
898
+ , threadEffect = effect }
899
+ simstate@ SimState { curTime = time }
896
900
| maskst /= MaskedUninterruptible =
897
901
-- We're doing a blocking operation, which is an interrupt point even if
898
902
-- we have async exceptions masked, and there are pending blocked async
899
903
-- exceptions. So immediately raise the exception and unblock the blocked
900
904
-- thread if possible.
901
- deschedule Interruptable thread { threadMasking = Unmasked } simstate
905
+ SimPORTrace time tid tstep tlbl (EventDeschedule Interruptable ) <$>
906
+ deschedule Interruptable thread { threadMasking = Unmasked } simstate
902
907
903
908
deschedule (Blocked blockedReason) thread@ Thread { threadId = tid,
904
909
threadStep = tstep,
0 commit comments