Commit c51d2e53 authored by tibbe's avatar tibbe

Merge the new parallel I/O manager

parents 7b098b60 fc2b87de
......@@ -23,5 +23,7 @@ StgStablePtr getOrSetGHCConcWindowsIOManagerThreadStore(StgStablePtr ptr);
StgStablePtr getOrSetGHCConcWindowsProddingStore(StgStablePtr ptr);
StgStablePtr getOrSetSystemEventThreadEventManagerStore(StgStablePtr ptr);
StgStablePtr getOrSetSystemEventThreadIOManagerThreadStore(StgStablePtr ptr);
StgStablePtr getOrSetSystemTimerThreadEventManagerStore(StgStablePtr ptr);
StgStablePtr getOrSetSystemTimerThreadIOManagerThreadStore(StgStablePtr ptr);
#endif /* RTS_GLOBALS_H */
......@@ -25,6 +25,8 @@ typedef enum {
GHCConcWindowsProddingStore,
SystemEventThreadEventManagerStore,
SystemEventThreadIOManagerThreadStore,
SystemTimerThreadEventManagerStore,
SystemTimerThreadIOManagerThreadStore,
MaxStoreKey
} StoreKey;
......@@ -114,3 +116,15 @@ getOrSetSystemEventThreadIOManagerThreadStore(StgStablePtr ptr)
{
return getOrSetKey(SystemEventThreadIOManagerThreadStore,ptr);
}
StgStablePtr
getOrSetSystemTimerThreadEventManagerStore(StgStablePtr ptr)
{
return getOrSetKey(SystemTimerThreadEventManagerStore,ptr);
}
StgStablePtr
getOrSetSystemTimerThreadIOManagerThreadStore(StgStablePtr ptr)
{
return getOrSetKey(SystemTimerThreadIOManagerThreadStore,ptr);
}
......@@ -1098,6 +1098,8 @@ typedef struct _RtsSymbolVal {
SymI_HasProto(getOrSetGHCConcWindowsProddingStore) \
SymI_HasProto(getOrSetSystemEventThreadEventManagerStore) \
SymI_HasProto(getOrSetSystemEventThreadIOManagerThreadStore) \
SymI_HasProto(getOrSetSystemTimerThreadEventManagerStore) \
SymI_HasProto(getOrSetSystemTimerThreadIOManagerThreadStore) \
SymI_HasProto(getGCStats) \
SymI_HasProto(getGCStatsEnabled) \
SymI_HasProto(genSymZh) \
......
......@@ -45,6 +45,7 @@ PRELUDE_CLOSURE(base_ControlziExceptionziBase_nestedAtomically_closure);
PRELUDE_CLOSURE(base_GHCziConcziSync_runSparks_closure);
PRELUDE_CLOSURE(base_GHCziConcziIO_ensureIOManagerIsRunning_closure);
PRELUDE_CLOSURE(base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure);
PRELUDE_CLOSURE(base_GHCziConcziSignal_runHandlers_closure);
PRELUDE_CLOSURE(base_GHCziTopHandler_flushStdHandles_closure);
......
......@@ -2067,6 +2067,12 @@ setNumCapabilities (nat new_n_capabilities USED_IF_THREADS)
stgFree(old_capabilities);
}
// Notify IO manager that the number of capabilities has changed.
rts_evalIO(
&cap,
&base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure,
NULL);
rts_unlock(cap);
#endif // THREADED_RTS
......
......@@ -101,6 +101,7 @@ ld-options:
, "-u", "_base_GHCziTopHandler_runIO_closure"
, "-u", "_base_GHCziTopHandler_runNonIO_closure"
, "-u", "_base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
, "-u", "_base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
, "-u", "_base_GHCziConcziSync_runSparks_closure"
, "-u", "_base_GHCziConcziSignal_runHandlers_closure"
#else
......@@ -140,6 +141,7 @@ ld-options:
, "-u", "base_GHCziTopHandler_runIO_closure"
, "-u", "base_GHCziTopHandler_runNonIO_closure"
, "-u", "base_GHCziConcziIO_ensureIOManagerIsRunning_closure"
, "-u", "base_GHCziConcziIO_ioManagerCapabilitiesChanged_closure"
, "-u", "base_GHCziConcziSync_runSparks_closure"
, "-u", "base_GHCziConcziSignal_runHandlers_closure"
#endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment