Hacker News new | ask | show | jobs
by bhackett 1731 days ago
We definitely need to avoid replaying from the start every time we want to inspect the state at some point. This is kind of an internal detail, but we can avoid having to replay parts of the recording over and over again by using fork() to create new processes at points within the recording.

Ordering constraints between different library functions do crop up from time to time. In cases like this the recorder library uses ordered locks internally (basically emulating the synchronization which the system library has to do) to ensure that the calls execute in the expected order when replaying.

1 comments

Oh that's cool, using fork() to create checkpoints. Thank you again for taking the time to explain!