<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /></head><body style='font-size: 10pt; font-family: Verdana,Geneva,sans-serif'>
<p>Hi,</p>
<p>Is this the right place to ask questions about CRIU's features and internals?</p>
<p>If so, I have been considering CRIU for dumping and restoring a process with a set of threads synchronised through <a href="https://man7.org/linux/man-pages/man2/futex.2.html">futexes</a>. It seems to work, but, I cannot tell from the documentation (wiki) whether it is officially supported, or just accidentally works for the cases I tested it with.</p>
<p>I could not find which parts would take care of the state of the futex_wait system call in CRIU's source code, except maybe for `get_task_regs()` in crui/compel/arch/x86/src/lib/infect.c (I run it on an amd64 processor). This function issues the warning "Will restore %d with interrupted system call" when I dump the futex-heavy process. Is it enough to save the process's register state to resume the futex system call correctly ?</p>
<p><br /></p>
<p>Best regards,</p>
<p>Dorian Goepp</p>
</body></html>