From: williamkempf_at_[hidden]
Date: 2001-09-10 22:04:19


--- In boost_at_y..., "Dale Peakall" <dale.peakall_at_b...> wrote:
> 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.

I expect this will probably be corrected in the latest code in CVS,
though I don't have STLport to verify.

> 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.

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

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

I need to evaluate this a little better tomorrow.
 
> 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).

Reported by others and fixed.
 
> Same for recursive_mutex.
>
> In the condition variable example:
>
> The typedef from boost::mutex::lock needs to be changed to
> boost::mutex::scoped_lock.

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

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

Thanks. Fixed.
 
> The finished variable doesn't exist.

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

Problem with &lt; &gt; usage. Reported earlier and fixed.
 
> In thread_proc() should be value.reset() rather than value.set().

Reported earlier and fixed.
 
> In main(), create() should be create_thread(). Should return 0.

The create() was reported earlier and fixed. Strictly speaking main
() need not return 0. VC++ produces an erroneous warning here, but
the behavior is well defined by the standard.

Bill Kempf