The GC directly depends upon a thread abstraction to provide suspending of threads. This requires on Posix to setup signals on the thread. For these reasons it must go together. It wouldn't be a bad idea to have both a C threads implementation and a singleton one.