Fix deadlocks in GC on Windows.
authorStas Boukarev <stassats@gmail.com>
Fri, 22 Nov 2013 18:38:31 +0000 (22:38 +0400)
committerStas Boukarev <stassats@gmail.com>
Fri, 22 Nov 2013 19:09:27 +0000 (23:09 +0400)
commitdebae3c18d31b5222be4d5de8dcb2601336e24a4
tree870c535ff6d400be1b641fab5a8c417197009260
parentfc0f9907f434d087a0b57d782db66b6cb3f7d98b
Fix deadlocks in GC on Windows.

When multiple threads cons and end up in the GC, they could deadlock
trying to send messages using safepoints and trying to acquire the
*already-in-gc* lock.

Also happens to stop gc.impure.lisp / BUG-936304 test from failing on linux-x86.

Thanks to Paul Khuong for the patch.
NEWS
src/code/gc.lisp
src/runtime/gc-common.c
tests/dynamic-extent.impure.lisp