NAK
As you said, you did not test it on Windows, yet you added #ifdef
for Windows support. Since Windows doesn't support secondary
processes (yet) how could you.
Adding Windows here has to wait until it can be tested.
I have tested only on Linux, all the codes are under #ifndef i.e., if window support environment is not defined.