Uploaded image for project: 'Thrift'
  1. Thrift
  2. THRIFT-1584

Error: could not SetMinThreads in ThreadPool on single-core machines

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.8
    • 0.9.2
    • C# - Library
    • None
    • Hardware: Single-Core CPU,
      System: CentOS system,
      Coding Language: mono

    • Patch Available

    Description

      On a linux system with single cpu core, TThreadPoolServer(csharp) might throw an exception like "Error: could not SetMinThreads in ThreadPool".

      According to SetMinThreads description in MSDN:
      If you specify a negative number or a number larger than the maximum number of active thread pool threads (obtained using GetMaxThreads), SetMinThreads returns false and does not change either of the minimum values.

      The default DEFAULT_MIN_THREADS value is 10, while GetMaxThreads obtains 100 and 4 on a single-cpu computer. This make SetMinThreads function failed.

      The number obtained by GetMaxThreads is associated with the number of cpu core.
      So I suggest to change the order of SetMinThreads and SetMaxThreads, like:

      	if (!ThreadPool.SetMaxThreads(maxThreadPoolThreads, maxThreadPoolThreads))
      		throw new Exception("Error: could not SetMaxThreads in ThreadPool");
              if (!ThreadPool.SetMinThreads(minThreadPoolThreads, minThreadPoolThreads))
                  throw new Exception("Error: could not SetMinThreads in ThreadPool");
      

      Attachments

        Activity

          People

            jensg Jens Geyer
            bulletis Funny
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: