A simple and powerful multithreading library for Delphi
Pascal Other
Latest commit 631bace Feb 17, 2017 @gabr42 small formatting fixes
Failed to load latest commit information.
bag of stuff getting ready for a release Feb 16, 2017
doc getting ready for a release Feb 16, 2017
examples fixed incorrect program logic Nov 26, 2016
packages DllSuffix was not set in correct place Oct 19, 2016
res Initial Delphinus support Aug 30, 2015
src sync'd to latest versions Feb 9, 2017
tests ! OtlMonitor events were not connected to the component Nov 18, 2016
unittests don't start a future if cancellation token is signalled Feb 3, 2017
.gitignore * gitignore Jul 4, 2016
Clean.bat + added "Clean.bat" to remove all automatically created files. Call t… Oct 30, 2012
Delphinus.Info.json Delphinus points to correct packages Oct 17, 2016
Delphinus.Install.json ! Delphinus: packages was not copied recursively Oct 18, 2016
LICENSE.txt + added license and readme Apr 16, 2015
OtlCollections.pas fixed compilation Nov 22, 2016
OtlComm.pas increased default message queue size Dec 7, 2016
OtlCommBufferTest.pas imported 'mobile' branch (partially) into OtlContainers and OtlContai… Oct 3, 2015
OtlCommon.Utils.pas imported 'mobile' branch (partially) into OtlContainers and OtlContai… Oct 3, 2015
OtlCommon.pas fixed TOmniValue.CastTo<TArray<Int64>> Feb 3, 2017
OtlContainerObserver.pas partial fix for "1816 error" problems Jan 22, 2017
OtlContainers.pas Fixed processing of 'new message'/'new wake event' events in TWaitFor. Oct 9, 2015
OtlDataManager.pas ! fixed a memory leak Jun 30, 2016
OtlEventMonitor.dcr Class TOmniTaskEventDispatch renamed to TOmniEventMonitor. Jul 26, 2008
OtlEventMonitor.pas handle error 1816 Jan 22, 2017
OtlHooks.pas merged in NUMA changes Oct 17, 2016
OtlLogger.pas OtlParallel and OtlLogger corrected for non-Windows platforms Oct 4, 2015
OtlOptions.inc NUMA is supported on D2009+ Oct 17, 2016
OtlParallel.pas don't start a future if cancellation token is signalled Feb 3, 2017
OtlRegister.pas imported 'mobile' branch (partially) into OtlContainers and OtlContai… Oct 3, 2015
OtlSuperObject.pas imported 'mobile' branch (partially) into OtlContainers and OtlContai… Oct 3, 2015
OtlSync.pas implemented Atomic<I,T>.Initialize Oct 24, 2016
OtlTask.pas merged in NUMA changes Oct 17, 2016
OtlTaskControl.pas compatibility with old versions Oct 18, 2016
OtlThreadPool.pas catch exceptions in ThreadDataFactory Feb 3, 2017
README.md 3.07 readme Feb 16, 2017
doalltests.bat updates command line window title Jul 27, 2015
history.txt small formatting fixes Feb 17, 2017
makedownload.bat ! history.txt will do, *.txt includes FastMM4 reports Mar 1, 2015


What is OmniThreadLibrary?

OmniThreadLibrary is a simple to use threading library for Delphi. OTL's main "selling" points (besides the prices, of course ;) are power, simplicity, and openess. With just few lines of code, you can set up multiple threads, send messages between them, process Windows messages and more. OTL doesn't limit you in any way - if it is not powerfull enough for you, you can ignore any part of its "smartness" and replace it with your own code.

How do I get OmniThreadLibrary?

Clone the repository with Git or checkout the repository with SVN: https://github.com/gabr42/OmniThreadLibrary.git

Download the latest release (3.07): https://drive.google.com/file/d/0BwqVlLNTK4OxVlFuWDh5c1FQZDA/view?usp=sharing

Download an older release: https://drive.google.com/folderview?id=0BwqVlLNTK4OxVEgzZnZGM1FNMGc&usp=drive_web#list

If you have Delphi XE8 or newer, you can install OmniThreadLibrary via GetIt.

If you have Delphi XE or newer, you can install Delphinus package manager and install OmniThreadLibrary there. (Delphinus-Support)

How do I use OmniThreadLibrary?

Download and install the sources. Compile and install the OmniThreadLibrary package. Read the tutorials. Examine the demos, which are part of the OmniThreadLibrary download.

Is OmniThreadLibrary supported on my platform?

At the moment, OTL supports Delphi 2007, 2009, 2010, XE, XE2, XE3, XE4, XE5, XE6, XE7, XE8, 10 Seattle, and 10.1 Berlin on Win32 and Win64 platforms using the VCL framework.

There are no plans to support older Delphi compilers. We are working on support for mobile devices, OS X, and FireMonkey.

How do I get support?

Support is provided through the Google+ community.

Where can I get more information?

There's a book (work in progress): Parallel Programming with OmniThreadLibrary.

Some recorder webinars are available: http://www.omnithreadlibrary.com/webinars.htm

Lots of articles are available on my blog: http://www.omnithreadlibrary.com/tutorials.htm