X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=rts%2Fwin32%2FThrIOManager.c;h=35f1b5e1bf123b50b5800e96a10299edf0683958;hb=6c3f7b65603359ed605062835a62da9f9bd229d6;hp=50dd4fb95a1a5f99b4cde7e2e094933befccc3ef;hpb=2726a2f10256710cc6ed80b1098cb32e121e1be7;p=ghc-hetmet.git diff --git a/rts/win32/ThrIOManager.c b/rts/win32/ThrIOManager.c index 50dd4fb..35f1b5e 100644 --- a/rts/win32/ThrIOManager.c +++ b/rts/win32/ThrIOManager.c @@ -123,6 +123,10 @@ void ioManagerDie (void) { sendIOManagerEvent(IO_MANAGER_DIE); + // IO_MANAGER_DIE must be idempotent, as it is called + // repeatedly by shutdownCapability(). Try conc059(threaded1) to + // illustrate the problem. + io_manager_event = INVALID_HANDLE_VALUE; // ToDo: wait for the IO manager to pick up the event, and // then release the Event and Mutex objects we've allocated. }