Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix ThreadScheduler and ThreadState state machine logic #530

Open
2 tasks
eupp opened this issue Feb 18, 2025 · 0 comments
Open
2 tasks

Fix ThreadScheduler and ThreadState state machine logic #530

eupp opened this issue Feb 18, 2025 · 0 comments

Comments

@eupp
Copy link
Collaborator

eupp commented Feb 18, 2025

Currently the Lincheck strategies classes use the following ThreadState state machine to manage the threads:

* 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant