Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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));
            }
        }