protected static void InternalThreadUnsafeStartCoroutine(PausableTask task, ThreadSafeQueue <PausableTask> newTaskRoutines, FlushingOperation flushingOperation) { if (task == null || (flushingOperation.stopped == false && task.MoveNext() == false)) { return; } newTaskRoutines.Enqueue(task); //careful this could run on another thread! }