Fixed the console sigint deadlock, by queuing execution in the finalizer thread.
authorPaolo Molaro <lupus@oddwiz.org>
Tue, 12 Oct 2010 15:08:42 +0000 (17:08 +0200)
committerPaolo Molaro <lupus@oddwiz.org>
Tue, 12 Oct 2010 15:08:42 +0000 (17:08 +0200)
commit96880dc3e7fb9a87aa6c18c0e08595af70103d30
tree831f1a4c164d81f3c1c074f2663b912473b72246
parentd3985be4e45a001e73fdcc47db190b3df61b2a51
Fixed the console sigint deadlock, by queuing execution in the finalizer thread.

* console-io.h, console-null.c, console-unix.c, console-win32.c,
gc.c: instead of executing tons of managed code in signal context,
we wake up the finalizer thread and any complex console-specific
code will be handled there. This can cause a (usually small) delay,
but it's much better than deadlocking.
mono/metadata/console-io.h
mono/metadata/console-null.c
mono/metadata/console-unix.c
mono/metadata/console-win32.c
mono/metadata/gc.c