OmniThreadLibrary forum
News: SMF - Just Installed!
 
*
Welcome, Guest. Please login or register. May 17, 2012, 06:03:38 PM


Login with username, password and session length


Pages: [1]   Go Down

Author Topic: OmniThreadLibrary 3.0  (Read 474 times)

Primoz Gabrijelcic

  • Administrator
  • Hero Member
  • *****
  • Posts: 569
    • View Profile
    • Email
OmniThreadLibrary 3.0
« on: January 06, 2012, 02:35:43 PM »

OmniThreadLibrary 3.0 has just been released. It is available via
SVN (http://omnithreadlibrary.googlecode.com/svn/tags/release-3.0)
or as a ZIP archive
(http://omnithreadlibrary.googlecode.com/files/OmniThreadLibrary-3.0.zip).
UML diagrams for this release are available (thanks to Rich Shealer)
as a ZIP archive
(http://code.google.com/p/omnithreadlibrary/downloads/detail?name=OmniThreadLibrary-UML-3.0.zip).

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. If you don't like working with
threads - no problem! You can use high-level primitives like parallel
for, futures and pipelines to introduce parallelism into your application.

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, 2009, 2010, XE,
and XE2 on the Win32 and Win64 platforms. Currently, there are no plans to
support older Delphi compilers and .NET. XE2 support is limited to Windows
targets.

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

Changes since version 2.2
===========================

- New features:
  - Support for 64-bit platform. Great thanks to [GJ] for doing most of
    the work!
  - Implemented background worker abstraction,
    Parallel.BackgroundWorker.
  - Implemented Atomic<T> class for lock-free initialization of
    interfaces and objects.
  - Implemented Locked<T> class for locking intialization of practically
    anything.
    http://www.thedelphigeek.com/2011/11/atomic-interface-initialization.html
    http://www.thedelphigeek.com/2011/11/per-object-locking.html
    http://www.thedelphigeek.com/2011/12/on-optimistic-and-pessimistic.html
    http://www.thedelphigeek.com/2011/12/creating-object-from-unconstrained.html
  - TOmniValue.AsInteger, AsString and AsWideString now work if the
    TOmniValue contains a Variant of the apropriate type.
  - TOmniValue can store arrays, hashes and records. Variant arrays are
    no longer used. IsArray tests it TOmniValue contains an array and
    AsArray returns this internal container. Default indexed property
    still accesses individual elements in this container. See demo
    50_OmniValueArray for an example.
    http://www.thedelphigeek.com/2011/11/tomnivalue-handles-arrays-hashes-and.html
  - Added a class which can wrap any record - TOmniRecordWrapper<T>.
  - Added an interface which can wrap any object and destroy it when the
    interface goes out of scope - IOmniAutoDestroyObject.

- Bug fixes:
  - Fixed bugs in TOmniInterfaceDictionary which caused scheduled tasks
    not to be destroyed until the program was terminated. Great thanks
    to [Zarko] for providing a reproducible test case.
  - Fixed race condition between TOmniTask.Execute and
    TOmniTask.Terminate.
  - Under some circumstances ProcessMessage failed to rebuild handle
    array before waiting which could cause 'invalid handle' error.
  - Fixed wrong order in teardown sequence in TOmniTask.Execute which
    could cause access violation crash. Great thanks to [Anton Alisov]
    for providing a reproducible test case.
  - Fixed invalid "A call to an OS function failed" error in
    DispatchEvent.
  - TOmniMessageQueue.Enqueue leaked if queue was full and value
    contained reference counted value (found by [meishier]).
  - Number of producers/consumers in TOmniForkJoin<T>.StartWorkerTasks
    was off by 1 (found by [meishier]).

- New demos:
  - 49_FramedWorkers: Multiple frames communication with each own worker
    task.
  - 50_OmniValueArray: Wrapping arrays, hashes and records in
    TOmniValue.
  - 51_PipelineStressTest: Stress test by [Anton Alisov].
  - 52_BackgrondWorker: Demo for the new Parallel.BackgroundWorker
    abstraction.
   
--
Primoz
[http://thedelphigeek.com]
Logged
Pages: [1]   Go Up
 
 

Powered by MySQL Powered by PHP Powered by SMF 2.0.2 | SMF © 2006-2009, Simple Machines LLC

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM