private static DedicatedThreadPoolSettings ConfigureSettings(Config config) { var dtp = config.GetConfig("dedicated-thread-pool"); var fje = config.GetConfig("fork-join-executor"); if ((dtp == null || dtp.IsEmpty) && (fje == null || fje.IsEmpty)) { throw new ConfigurationException( $"must define section 'dedicated-thread-pool' OR 'fork-join-executor' for fork-join-executor {config.GetString("id", "unknown")}"); } if (dtp != null && !dtp.IsEmpty) { var settings = new DedicatedThreadPoolSettings(dtp.GetInt("thread-count"), DedicatedThreadPoolConfigHelpers.ConfigureThreadType(dtp.GetString("threadtype", ThreadType.Background.ToString())), config.GetString("id"), DedicatedThreadPoolConfigHelpers.GetSafeDeadlockTimeout(dtp)); return(settings); } else { var settings = new DedicatedThreadPoolSettings(ThreadPoolConfig.ScaledPoolSize(fje.GetInt("parallelism-min"), 1.0, fje.GetInt("parallelism-max")), name: config.GetString("id")); return(settings); } }
public ForkJoinDispatcherConfigurator(Config config, IDispatcherPrerequisites prerequisites) : base(config, prerequisites) { var dtp = config.GetConfig("dedicated-thread-pool"); if (dtp == null || dtp.IsEmpty) { throw new ConfigurationException(string.Format("must define section dedicated-thread-pool for ForkJoinDispatcher {0}", config.GetString("id", "unknown"))); } var settings = new DedicatedThreadPoolSettings(dtp.GetInt("thread-count"), DedicatedThreadPoolConfigHelpers.ConfigureThreadType(dtp.GetString("threadtype", ThreadType.Background.ToString())), DedicatedThreadPoolConfigHelpers.GetSafeDeadlockTimeout(dtp)); _instance = new ForkJoinDispatcher(this, settings); }
public PinnedDispatcherConfigurator(Config config, IDispatcherPrerequisites prerequisites) : base(config, prerequisites) { var dtp = config.GetConfig("dedicated-thread-pool"); if (dtp == null || dtp.IsEmpty) { _settings = DedicatedThreadPoolConfigHelpers.DefaultSingleThreadPoolSettings; } else { _settings = new DedicatedThreadPoolSettings(1, DedicatedThreadPoolConfigHelpers.ConfigureThreadType(dtp.GetString("threadtype", ThreadType.Background.ToString())), DedicatedThreadPoolConfigHelpers.GetSafeDeadlockTimeout(dtp)); } }