Boost logo

Boost :

From: Dale Peakall (dale.peakall_at_[hidden])
Date: 2001-09-10 10:28:23


Not really a review. Haven't made enough use of it yet to provide that.

Boost.Threads fails to compile on VC6 SP5 with either or STLPort-4.0 or
the last snapshot (before 4.5's release at the weekend).

Compilation fails on line 127 of tss.cpp. Not exactly sure what's going
on here, some sort of conversion problem according to the compiler error.

A number of additional warnings are produced.

C4290 warning (C++ exception specification ignored). It would be nice
for this to be #pragma'd out in the Boost.Threads cpp files.

C4244 warning in timeconv.inl (line 83). conversion from '__int64' to
'unsigned int'; possible loss of data.

C4018 warning in condition.hpp (lines 82 and 132) - signed/unsigned
mismatch.

The examples included in the documentation appear to all be broken:

In the mutex documentation:

create() should be create_thread() and shouldn't take 2 args. Neither
should the thread funcs take a void* arg. I missed the decision not to
provide a facility for passing data into a thread func (except by using
a functor). A rational wouldn't be missed for this in the docs (as both
pthreads and win32 threads provide this functionality).

Same for recursive_mutex.

In the condition variable example:

The typedef from boost::mutex::lock needs to be changed to
boost::mutex::scoped_lock.

The constructor name needs to match the name of the class
(bounded_buffer).

Again the thread funcs shouldn't take any args and the constructor for
the threads shouldn't try and provide one.

The finished variable doesn't exist.

The thread_specific_ptr example:

Missing template type in typedef. Should be
boost::thread_specific_ptr<int>.

In thread_proc() should be value.reset() rather than value.set().

In main(), create() should be create_thread(). Should return 0.

        - Dale.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk