You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Here is a state diagram of the thread life cycle in Lincheck:
However, currently there are several technical problems in the code base:
Analysis code injections can be invoked even if the thread is in aborted state --- we should instead exit injected code as early as possible in this case.
onThreadFinish injection in ManagedStrategy assumes the code runs in "managed" mode, that is one thread is run at a time --- but this is not true in the aborted state. Therefore the transition from aborted to finished state is not implemented properly, and the thread may end up in Aborted state instead of Finished state after thread termination.
The text was updated successfully, but these errors were encountered:
Currently the Lincheck strategies classes use the following
ThreadState
state machine to manage the threads:lincheck/src/jvm/main/org/jetbrains/kotlinx/lincheck/strategy/ThreadScheduler.kt
Line 35 in a758c54
However, currently there are several technical problems in the code base:
onThreadFinish
injection inManagedStrategy
assumes the code runs in "managed" mode, that is one thread is run at a time --- but this is not true in the aborted state. Therefore the transition from aborted to finished state is not implemented properly, and the thread may end up inAborted
state instead ofFinished
state after thread termination.The text was updated successfully, but these errors were encountered: