On Tuesday, 20 June 2017 at 04:35:27 UTC, ketmar wrote:
H. S. Teoh wrote:

He mentioned the "fork trick", which I assume refers to how Linux's implementation of fork() uses copy-on-write rather than immediately duplicating the parent process' memory structures. There was a D1 GC some time ago that depended on this behaviour to speed up the collection
cycle.

and it was even ported to D2, and worked. sadly, using `fork()` has it's own set of problems -- `fork()` itself is in no way a flawless expirience. like you can fork while other thread is inside glibc's `malloc()`, and BOOM! alot of glibc is locked forever, as `malloc()` lock is never released in child process. some other libraries may try to intercept `fork()` to do unnecessary "cleanup", and so on.

Since we are in control of what child does I see this as no issue. Just call mmap and do bump a pointer allocation.

Reply via email to