OmniThreadLibrary 3.07 beta 1

@gabr42 gabr42 released this Feb 3, 2017 · 6 commits to master since this release

  • New features:
    • Added function IOmniPipeline.NoThrottle which disables throttling on an entire pipeline or one of its stages.
    • Added function IOmniBlockingCollection.IsFinalized.
    • Added function IOmniBlockingCollection.Count.
    • Added readonly property IOmniThreadPool.NumCores which returns number of cores this pool uses for running tasks. Changing Affinity, ProcessorGroups, or NUMANodes properties may modify this value.
    • Communication subsystem handles ERROR_NOT_ENOUGH_QUOTA (1816) error.
    • Added function IOmniBackgroundWorker.OnStop.
    • Added property IOmniWorkItem.SkipCompletionHandler. If it is set to True when work item is created or during its execution, request handlers for that work item won't be called. If it is set to True in the OnRequestDone_Asy handler, then only OnRequestDone handler won't be called.
  • Bug fixes:
    • Reverted change from 3.06: "Any change to Affinity, ProcessorGroups, or NUMANodes properties will reset the MaxExecuting property."
      • New behaviour is compatible with the pre-3.06 code: Initially, MaxExecuting is set to Environment.Process.Affinity.Count. This value can only be changed by the external code, not inside the OtlThreadPool unit.
    • In threadpool, IdleWorkerThreadTimeout_sec and WaitOnTerminate_sec were initialized too late.
  • New demos:
    • examples\folder scanner: File scanning example implemented with a Pipeline.