Unfortunately we cannot track the information on which ThreadDelay
a thread is blocked in threadStatus because it is cleared when
a thread is rescheduled. This is too early. In the scenario we are
interested in, the thread is rescheduled when the thread receives an
exception and it's when we interpret the Throw we need to know the
TimeoutId of that threadDelay.
We add a threadDelayId field, which tracks the last threadDelay id.
This field only cleared when the thread receives an exception, thus it's
life time is long enough to be useful.
Unfortunately we cannot track the information on which
ThreadDelay
a thread is blocked inthreadStatus
because it is cleared when a thread is rescheduled. This is too early. In the scenario we are interested in, the thread is rescheduled when the thread receives an exception and it's when we interpret theThrow
we need to know theTimeoutId
of thatthreadDelay
.We add a
threadDelayId
field, which tracks the lastthreadDelay
id. This field only cleared when the thread receives an exception, thus it's life time is long enough to be useful.