21:20:19stassatsso much advice on the internet is wrong, like all the people trying to convince that fork+exec is really fast because of CoW
21:21:29stassatsand now i can reproduce the deadlock in run-program
21:22:42stassatsmaybe interrupting fork is not a good idea and i should push the change that moves forking into a separate non-lisp thread
21:31:07stassatsi actually want two dedicated threads for run-program houskeeping, the C one will fork, handle SIGCHLD and the lisp one will handle input/output polling
21:32:00stassatsbut first i need to somehow use vfork/clone
21:32:11stassatsmaybe a dedicated subprocess for launching processes