summaryrefslogtreecommitdiff
path: root/rts/IOManager.h
diff options
context:
space:
mode:
authorDuncan Coutts <duncan@well-typed.com>2021-01-03 18:27:19 +0000
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-01-25 05:11:14 -0500
commit9a7d19ba0a3a3e2f9a0ffa270895d09c912240f0 (patch)
tree6749340896cb78d26b4bffba6aa7c2caeb08ca55 /rts/IOManager.h
parentd345d3befe40cd265b9309f10c0aea057b2dd249 (diff)
downloadhaskell-9a7d19ba0a3a3e2f9a0ffa270895d09c912240f0.tar.gz
Replace a ioManagerDie call with stopIOManager
The latter is the proper hook defined in IOManager.h. The former is part of a specific I/O manager implementation (the threaded unix one).
Diffstat (limited to 'rts/IOManager.h')
-rw-r--r--rts/IOManager.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/rts/IOManager.h b/rts/IOManager.h
index 3a66760258..1059f4212e 100644
--- a/rts/IOManager.h
+++ b/rts/IOManager.h
@@ -39,6 +39,11 @@ void initIOManagerAfterFork(/* inout */ Capability **pcap);
/* Shutdown hooks: called from hs_exit_ before and after the scheduler exits.
+ *
+ * The stopIOManager is also called many times (once per-capability) within the
+ * scheduler shutdown (but only in threaded mode). This is despite the fact that
+ * stopIOManager shuts down the I/O manager for all capabilities.
+ * FIXME: this is accidentally quadratic and confusing.
*/
void stopIOManager(void);
void exitIOManager(bool wait_threads);