mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-05-23 05:42:29 +00:00
Fix fork locking on win32 (#1141)
* Fix fork locking on win32 - __enable_threads / set __threaded in __proc_setup as threads are required for win32 subprocess management - move mmi/fds locking out of pthread_atfork.c into fork.c so it's done anytime __threaded is set instead of being dependent of pthreads - explicitly yoink _pthread_onfork_prepare, _pthread_onfork_parent, and _pthread_onfork_child in pthread_create.c so they are linked in in-case they are separated from _pthread_atfork Big Thanks to @dfyz for help with locating the issue, testing, and devising a fix! * fix child processes not being able to open files, initialize all necessary locks on fork
This commit is contained in:
parent
6e6fc38935
commit
69db501c68
6 changed files with 49 additions and 23 deletions
|
@ -60,6 +60,9 @@ __static_yoink("nsync_mu_trylock");
|
|||
__static_yoink("nsync_mu_rlock");
|
||||
__static_yoink("nsync_mu_runlock");
|
||||
__static_yoink("_pthread_atfork");
|
||||
__static_yoink("_pthread_onfork_prepare");
|
||||
__static_yoink("_pthread_onfork_parent");
|
||||
__static_yoink("_pthread_onfork_child");
|
||||
|
||||
#define MAP_ANON_OPENBSD 0x1000
|
||||
#define MAP_STACK_OPENBSD 0x4000
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue