Boost logo

Boost :

From: Alexander Terekhov (terekhov_at_[hidden])
Date: 2002-05-31 08:50:45

Darin Adler wrote:
> Once we found this out, Peter Dimov and others changed smart_ptr
> so that it doesn't use this header any more. They also made other
> improvements to the thread safety code to make it simpler and faster.
> The current version of Boost, 1.28.0, has this fixed.

Memory visibility (acquire-on-lock/release-on-unlock semantics) aside,
the 'lwm' stuff in CVS (the one full of sched_yield()/winapi::Sleep(0))
is BROKEN... unless, of course, ALL boost MT client applications are
meant for deployment on scheduling allocation domains of size ONE
(uniprocessors) ONLY... WITH FIFO/RR priority scheduling {POSIX realtime
option} among *ALL-EQUAL-PRTY* threads.


P.S. "....Similarly, sched_yield() can be used to resolve some problems
      on a uniprocessor, though such problems can usually be solved more
      cleanly in other ways. Using sched_yield() will never solve a
      (unless the problem statement is "the performance is too good") on
      multiprocessor, and you should never use it there."

Boost list run by bdawes at, gregod at, cpdaniel at, john at