Get it as a zip or from the svn.
Changes since release 3.01:
- Compiles with XE3
- Added XE3 packages and test projects.
- Added Async/Await abstraction.
- Added OnStop overload to Parallel.ForEach that accepts 'reference to procedure (const task: IOmniTask)'.
- Added OnStop overload to Parallel.Pipeline that accepts 'reference to procedure (const task: IOmniTask)'.
- Implemented TOmniValue.IsRecord.
- IOmniBackgroundWorker extended with task initializer (Initialize) and task finalizer (Finalize).
- IOmniWorkItem extended with property TaskState.
- Inlined bunch of TOmniWorkItem methods.
- Parallel.Join was broken if number of task to be executed was larger than number of threads. Thanks to [Passella] for reporting the problem.
- Invalid 'joinState' was passed to the worker task in Parallel.Join if number of tasks to be executed was larger than the number of worker threads. Thanks to [meishier] for reporting the problem.
- Fixed race condition in task teardown. Big thanks to [meishier] for putting together a reproducible test case.
- ForEach finalizer is called if an exception occurs inside the ForEach task.
- OtlParallel added to packages. Thanks to [Mason Wheeler] for reporting the problem.
- OtlDataManager added to packages.
- Fixed bug in TOmniTaskGroup.TerminateAll - maxWait_ms parameter was ignored. Thanks to [morlic] for reporting the problem.
- Workaround for an internal error in D2009. Thanks to [ToHugie] for reporting the problem and to [Hallvard Vassbotn] for providing a fix.
- Fixed various scenarios where Invoke was not working. Thanks to [geskill] for providing report, test case and incremental testing on my partial solutions.
- XE2 and XE3 design packages were referring to wrong runtime package (XE).
- TOmniEventMonitor is marked as 64-bit compliant in XE2+. Thanks to [M.J. Brandt] for reporting a problem.
- Marked IOmniParallelLoop.OnMessage as deprecated (use TaskConfig.OnMessage).
- 53_AsyncAwait: Demonstration of the new Async/Await abstraction.
- ForEach output: Demonstrates how to 'flow' ForEach output directly into the main thread which immediately processes the data.
- Twofish: Parallel implementation of the FishFacts demo.