Wednesday, August 27, 2008

OmniThreadLibrary 1.0, day 1

First 24 hours totally exceeded my expectations.

day 1 downloads

Now start using it! Big Grin

Tuesday, August 26, 2008

OmniThreadLibrary 1.0 released

After 164 repository commits and two months of development, OmniThreadLibrary 1.0 was released today.

There were little changes since the 1.0 beta, mostly regarding the TOmniValue record, which can now seamlessly hold Double, Extended and Boolean values.

OmniThreadLibrary 1.0 is available via SVN ( or as a ZIP archive.

If you like OmniThreadLibrary, spread the word around. After all, not every Delphi developer is reading my blog (yet ;). Feel free to include any parts of the marketing blurb (below).

What is OmniThreadLibrary?

OmniThreadLibrary is simple to use threading library for Delphi. It's main "selling" points (besides the price, 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. OmniThreadLibrary 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.

OmniThreadLibrary is an open source project. It lives in the Google Code and is licensed under the BSD license.

At the moment, OmniThreadLibrary supports Delphi 2007 on the Win32 platform. It will support Delphi 2009 as soon as it's available. Currently, there are no plans to support older Delphi compilers and .NET.

Where can I get more imformation?

Home page:

Web discussion forum:


Issue tracker:

SVN checkout instructions:

Author's blog:

Author's home page:

Friday, August 22, 2008

OmniThreadLibrary 1.0 beta

Hello, my dear readers. Two weeks I spent there


but sadly I'm back now. Crying

My bad, your win - today I made last scheduled modification to the OTL sources and published version 1.0 beta. [snapshot, repository]

Underlying message format is no more based on Variants. TOmniValue is now a smart record with some implicit operators. In some cases that would cause more typing (using .AsInteger and similar) but in some other cases (when sending interfaces and objects) TOmniValue is now much simpler to use. Even more, it is slightly smaller and slightly faster.

There were also some changes in the TOmniEventMonitor component which now uses hash to access monitored tasks/pools. The old version was implemented with TInterfaceList and that could get quite slow if working with large number of tasks.

[BTW, I checked the code with Tiburon and it's working without a glitch.]

I've also started to work on the support infrastructure, namely the forum. Home page, FAQ and documentation will also appear - all in due time.

Friday, August 01, 2008

The Delphi Geek goes to standby mode

and so does OmniThreadLibrary. It's bicycle and swimming time.

Comments will stay in limbo as I won't be moderating them. Feel free to post them, though - I'll process everything as soon as I come back.