Enable handle fork by GC
ECL is multithread application which uses fork() to run subprocesses
for example. fork() creates a copy of an application with only one
thread, but GC may have pointers inside to old threads which may lead to
corrupted memory and other quite bad things.
Thus, on Darwin GC is used mach_thread_self() to get thread id, and
returned value migth be different after fork() for the same thread.
Closes: #718 (closed)