ZThread is an advanced object-oriented threading and synchronization library, implemented in C++ for POSIX, MacOS, and Win32 systems. It provides an excellent and powerful abstraction from native threads. It includes interruptible thread objects and several other synchronization control objects.
| Tags | Software Development Libraries Operating Systems |
|---|---|
| Licenses | LGPL GPL |
| Operating Systems | POSIX Windows Windows Mac OS X |
| Implementation | C++ |
Recent releases


Changes: A bug in ConcurrentExecutor/PoolExecutor has been fixed. Cancel() is optional, as it should be.


Changes: New functionality for Executors (optional waiting and task grouping), improvements to the Thread interface (optional waiting, no need to distinguish between daemon and non-daemon threads). ThreadLocal improvements and CountedPtr improvements. In general, things have undergone an overhaul resulting in a much more usable interface.


Changes: The changes that have been accumulating in CVS have been rolled up.


Changes: This release fixes an oversight in ThreadQueue that prevented daemon threads from being properly joined.


Changes: Support for MacOS, and misc. updates for vanilla primatives & build files.
- All comments
Recent commentsZthreads on Mac OS X
I created a simple C++ program on Macbook Pro (Leopard
10.5.6) to play with the ZThreads open source framework. I
downloaded the ZThread 2.3.2 source from sourceforge and
compiled it (eg.. ./configure -> make -> make install). I
built my test application using Eclipse and linked the
ZThread.la library into my application. The application
compiles/links successfully but when I try run my application
within the Eclipse IDE, I get the following errors:
dyld: lazy symbol binding failed: Symbol not found:
__MPIsFullyInitialized
Referenced from: /usr/local/lib/libZThread-2.3.2.dylib
Expected in: flat namespace
dyld: Symbol not found: __MPIsFullyInitialized
Referenced from: /usr/local/lib/libZThread-2.3.2.dylib
Expected in: flat namespace
Any ideas on what could be causing these errors????
Re: Won't Compile
See diffs required here:
http://aur.archlinux.org/packages/zthread/zthread/zthread-gcc4.patch
I've done them and it compiles fine on g++ 3.4.6
Is ZThreads really dead? I'm trying to contact the author to find out. Thinking in cpp has a good introduction to the library.
http://bruce-eckel.developpez.com/livres/cpp/ticpp/v2/?page=page_14#L3.4.2.1
http://www.mindview.net/Books/TICPP/ThinkingInCPP2e.html
I'm going to give ZThreads a good work out as I need a thread library for a commercial project and don't want to write my own again. Be interested in other people's experiences.
Re: Won't Compile
>
> New g++ requires strict definition, this
> function is considered anonymous since
> the one intended is inherited.
> What you should do is replace:
> isDisabled()
> With
> LockHolder<LockType>::isDisabled()
Given that the last release was in 2003, I'm not holding my breath for an update.... ;-)
Re: Won't Compile
> In file included from
> vanilla/SimpleAtomicCount.cxx:25,
> from
> AtomicCount.cxx:50:
> ../include/zthread/Guard.h: In
> destructor `ZThread::Guard<LockType,
> LockingPolicy>::~Guard()':
> ../include/zthread/Guard.h:493: error:
> there are no arguments to `isDisabled'
> that depend on a template parameter, so
> a declaration of `isDisabled' must be
> available
> ../include/zthread/Guard.h:493: error:
> (if you use `-fpermissive', G++ will
> accept your code, but allowing the use
> of an undeclared name is deprecated)
>
New g++ requires strict definition, this function is considered anonymous since the one intended is inherited.
What you should do is replace:
isDisabled()
With
LockHolder<LockType>::isDisabled()
Won't Compile
In file included from vanilla/SimpleAtomicCount.cxx:25,
from AtomicCount.cxx:50:
../include/zthread/Guard.h: In destructor `ZThread::Guard<LockType, LockingPolicy>::~Guard()':
../include/zthread/Guard.h:493: error: there are no arguments to `isDisabled' that depend on a template parameter, so a declaration of `isDisabled' must be available
../include/zthread/Guard.h:493: error: (if you use `-fpermissive', G++ will accept your code, but allowing the use of an undeclared name is deprecated)