-
Notifications
You must be signed in to change notification settings - Fork 15
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
Make it possible to generate schedules #125
Comments
Thanks for opening this issue! This would indeed be a great addition! This feature is something io-sim is lacking when compared with other similar libraries like |
Thanks @bolt12 for the encouraging comment :) |
I understand, depending on the program introducing delays can be quite a hassle. For networking code that comes quite naturally. With this being said, I think that if a solution a la |
TLDR: a random scheduler is a nice addition but to A random scheduler would be something nice to add but let me mention that one can already achieve something similar by instrumenting different delays, e.g. making your IO calls like As of implementation, one can pass an On the other hand There's a reason to add randomness to |
I realised that if we are just interested in reordering of two events if there are |
I understand that running
IOSim s
computations is purely deterministic: Every run will trigger the exact same scheduling of threads. This is great as it provides fast execution, but unless one wants to invest time and energy inIOSimPOR
it does not actually help us spot the kind of problems in concurrent code stemming from "surprising" reordering of executions.It seems to me that quick-checking code with
IOSim
would be even more powerful if the runtime was able to randomly select among runnable actions, generating and covering more possible execution schedules. I have only a vague understanding of io-sim's internals but this could be exposed at the API level through a function with an additional argument, like:Are you willing to implement it?
The text was updated successfully, but these errors were encountered: