Wednesday, February 18, 2015

OmniThreadLibrary 3.04 Release Candidate

RC for the new OmniThreadLibrary release is available here.

This version should work with Delphis from 2007 to XE7. Win32 and Win64 are supported for Console and VCL applications.


  1. Anonymous07:57

    Thanks for the update. I wish that you could update the documentation and examples so that they accurately work with current sources without any compile errors.

    1. When you find an example that doesn't work, just let me know. Add a post to the OmniThreadLibrary Google+ group, post a comment on this blog, or send me an email (my address is in every OTL source file). I'll fix it.

  2. Anonymous09:20

    Are there any release notes available for 3.04?

    1. They are in the download (history.txt).

    2. Reposted here:

      - New features:
      - Implemented simple and fast Parallel.&For which supports only integer ranges.
      - Implemented Parallel.Map.
      - Added overloaded Execute methods to IOmniParallelInitializedLoop and
      IOmniParallelInitializedLoop so that IOmniTask parameter can be passed
      to the executor.
      - Implemented Run overloads that internally call Invoke to start
      thread worker.
      - Implemented TOmniValue.HasArrayItem.
      - Implemented TWaitFor which supports waiting any/all and is not
      limited to 63 objects.
      - IOmniTaskControl can wait on any number of comm handles and wait objects.
      That enables support for >60 tasks in the OtlThreadPool.
      - Implemented TOmniBlockingCollection.ToArray.
      - NumTasks parameter (OtlParallel) can be negative. In that case, specified
      number of cores will be reserved for other purposes and all other will
      be used for processing.
      Example: If NumTasks(-2) is used when process has access to 8 cores,
      6 of them (8 - 2) will be used to run the task.
      - Removed project groups.
      - Tested with 2007-XE7.
      - Bug fixes:
      - Fixed race condition in IOmniPipeline termination code [tnx to Dean Hill].
      - Creating parameters with the array overload
      (IOmniTaskControl.SetParameters(['From', 0, 'To', 99])) was not working.
      - Fixed problems in demos 33_BlockingCollection and 47_TaskConfig.
      - New demos:
      - 55_ForEachProgress
      - 56_RunInvoke
      - 57_For
      - 58_ForVsForEach
      - 59_TWaitFor
      - 60_Map
      - 61_CollectionToArray

  3. Hi!!

    Can OmniThreadLibrary handle Database Application?

  4. Yes. See

  5. Talking about the book. Will we see a translation to Portuguese?

  6. Anonymous08:06

    Thank you!!!