Work out race conditions in non-threaded case.
createStrictIOThread
is not save to call while GC (and maybe the mutator?) is running in the non-threaded case.
I'm currently looking at this, but don't have a good solution yet.
I will push other small changes I make as I go to this MR as well.
Edited by Tamar Christina