Non-threaded RTS assumes that process is single-threaded
Currently the synchronization primitives in SMP.h
are compiled to single-threaded equivalents when compiling the non-threaded RTS under the assumption that the Haskell process is single-threaded. However, this isn't necessarily the case: the pthread itimer implementation relies crucially on threading.