With OCaml 5 we have multicore OCaml, meaning we can use parallel threads of execution.
The screen shot feature in Claudius is a little slow, on account of the LZW compression algorithm and my somewhat simple implementation of that. As a result, when you take a screenshot in Claudius currently it stops the animation for several seconds, which is not ideal.
Idea: We move the screenshot saving to use a separate parallel thread of execution (aka a domain in OCaml terms). OCaml domains can share memory, so we'd just need to take a copy of the frame buffer and push it to the other domain for saving (we need to take a copy because frame buffers are modifiable).
With OCaml 5 we have multicore OCaml, meaning we can use parallel threads of execution.
The screen shot feature in Claudius is a little slow, on account of the LZW compression algorithm and my somewhat simple implementation of that. As a result, when you take a screenshot in Claudius currently it stops the animation for several seconds, which is not ideal.
Idea: We move the screenshot saving to use a separate parallel thread of execution (aka a domain in OCaml terms). OCaml domains can share memory, so we'd just need to take a copy of the frame buffer and push it to the other domain for saving (we need to take a copy because frame buffers are modifiable).