Replies: 3 comments 3 replies
-
Hi @kripergvg, sadly your assumption does not hold. Coyote would not work with a custom ThreadPool or custom worker threads, as these require custom instrumentation of their lifetime (e.g., when they start executing, when they complete, when they pause and for what reason they paused so they can get re-enabled, and all these goe much beyond adding Coyote today works with either: (1) [recommended] binary instrumentation (i.e. using (2) [at your own risk, not supported] by manually instrumenting your cystom types (or in general types not instrumented already via *Regarding using |
Beta Was this translation helpful? Give feedback.
-
Thanks for clarifying @kripergvg, this makes much more sense to me now, but sadly my point from above still stands about custom thread pools! It actually depends how your thread pool is creating worker threads. If it creates threads using regular C# APIs like Another thought: what is the primarily reason behind your custom threadpool? Is it for performance? Or changing runtime semantics? If it is the former, could you remove the custom thread pool for testing only? This would reduce the complexity required to control and explore interleavings here. |
Beta Was this translation helpful? Give feedback.
-
Additionally to custom |
Beta Was this translation helpful? Give feedback.
-
Hello.
Thanks a lot for this great library!
I wanted to ask one thing - suppose we have a custom
ThreadPool
and custom task types. Is there any difference to how coyote performs if we putSchedulingPoint.Interleave();
manually comparing to if we replace our custom tasks with the coyote's ones? Is there any benefits in doing so?Additionally - do you have any guidance where
SchedulingPoint.Interleave();
should be put in case of customTask
types andThreadPool
? For me it seems that for coyote to work properly we can leave our customThreadPool
with custom worker threads and just putSchedulingPoint.Interleave();
at places where work is scheduled or executed and then use coyote rewriting for everything else. Is it a correct assumption?Beta Was this translation helpful? Give feedback.
All reactions