darlingserver/duct-tape
Ariel Abreu 9123bad915
Handle thread and process death asynchronously
What this means is that we no longer release and destroy Thread and
Process instances when the threads and processes they manage die.
Instead, we keep them alive to perform some cleanup (like finishing
active calls).

This should fix the duct-tape panic where threads and tasks are still
referenced at death.

Best of all, there don't seem to be any leaks with this approach: for
each `process dying` or `thread dying` message in the log, there's a
`process being destroyed` or `thread being destroyed` message later
on. This means we're not leaking any processes or threads.
2022-04-08 10:38:36 -04:00
..
defines Initial commit 2022-01-18 00:46:28 -05:00
include/darlingserver Handle thread and process death asynchronously 2022-04-08 10:38:36 -04:00
internal-include/darlingserver/duct-tape Implement memory sharing (in mach_vm_remap) 2022-04-01 02:21:32 -04:00
pthread psynch: Log to the server log file rather than stdout 2022-03-24 13:06:37 -04:00
src Handle thread and process death asynchronously 2022-04-08 10:38:36 -04:00
xnu Implement memory sharing (in mach_vm_remap) 2022-04-01 02:21:32 -04:00
CMakeLists.txt Allow threads to perform S2C calls at any time 2022-04-01 02:11:17 -04:00
README.md Initial commit 2022-01-18 00:46:28 -05:00

darlingserver Duct Taping

The purpose of this subproject is to use a significantly stripped down version of XNU's own kernel code coupled with some glue/duct-tape code to simulate the necessary parts of a normal XNU kernel environment for the code to work properly to implement things like Mach IPC.