For more information on OmniThreadLibrary, go to www.omnithreadlibrary.com.
- 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.
- If ThreadDataFactory.Execute throws an exception, that exception is caught, ignored and ThreadData is set to nil. [issue #88]
- 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.
- Fixed TOmniValue.CastTo<TArray<Int64>>. [issue #89]
- If a future's cancellation token is signalled before the future is even created, the future worker is not started at all. [issue #85]
- examples\folder scanner: File scanning example implemented with a Pipeline.