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 (http://omnithreadlibrary.googlecode.com/svn/tags/release-1.0) 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: http://otl.17slon.com/
Web discussion forum: http://otl.17slon.com/forum/
Downloads: http://code.google.com/p/omnithreadlibrary/downloads/list
Issue tracker: http://code.google.com/p/omnithreadlibrary/issues/list
SVN checkout instructions: http://code.google.com/p/omnithreadlibrary/source/checkout
Author's blog: http://thedelphigeek.com
Author's home page: http://gp.17slon.com
Congratulations.. really nice work.
ReplyDelete-mouser
Come on Support Delphi 2006
ReplyDeleteDownload the code, change it to support D2006 and send me the diff. Then I'll see if it is too much work to support both Delphis or not.
ReplyDeleteGreat works.
ReplyDeleteAny intention on support lazarus and linux?
Uh, I don't think so. But on the other hand I had no idea how compatible lazarus is with Delphi 2007. Probably not compatible enough.
ReplyDeleteNice work Gabr!
ReplyDeleteBTW: Did you ever read this article?
"Lock-Free Code: A False Sense of Security" by Herb Sutter
No, I didn't, but I will now :)
ReplyDeleteThanks for the link!
Gabr, is a lot compatible. more than you can believe. :)
ReplyDeleteSo, maybe i will take a look in your code and comment how much is your code compatible with lazarus and delphi.
Best regards.
If lazarus can consume smart records and operator overloading then it is truly a great tool!
ReplyDeleteBTW, is Donald Shimoda your real name or alias? (Yes, I've read through all Bach's novels.)
Gabr, great works!
ReplyDeleteIt works fine on Delphi 2006, but some code changes are made.
./src/GpStuff.pas
{$IFDEF ConditionalExpression!s}
{$IF CompilerVersion >= 18} //D2006+
//{$DEFINE GpStuff_Inline}
{$DEFINE GpStuff_AlignedInt}
{$IFEND}
{$IF CompilerVersion >= 18.5} //D2007+
{$DEFINE GpStuff_AlignedInt}
{$IFEND}
{$ENDIF}
Errr, is this OK? Didn't you mean to re-enable GpStuff_Inline for CompilerVersion >= 18.5?
ReplyDeleteThere is no problem in D2006.
ReplyDelete{$IFDEF ConditionalExpression!s}
{$IF CompilerVersion >= 18} //D2006+
{$DEFINE GpStuff_Inline}
{$DEFINE GpStuff_AlignedInt}
{$IFEND}
{$IF CompilerVersion >= 18.5} //D2007+
{$DEFINE GpStuff_AlignedInt}
{$IFEND}
{$ENDIF}
Maybe it's right.