The thread module provides support for thread creation and management.
If AtomicSuspendCount is used for speed reasons all signals are sent together.
When debugging gdb funnels all signals through one single handler, and if
the signals arrive quickly enough they will be coalesced in a single signal,
(discarding the second) thus it is possible to loose signals, which blocks
the program. Thus when debugging it is better to use the slower SuspendOneAtTime
version.
Sean Kelly, Fawzi Mohamed