
From: Chris Just <cpjust@yahoo.com>
Rob Stewart wrote:
Actually, I didn't. The attribution should be:
Bob Bell <belvis@pacbell.net> wrote:
Another possibility is to provide another level of indirection. For example, boost::thread can have an accessor which returns a boost::platform_thread, which has the OS thread ID, plus member functions which mimic OS operations not reflected in the portable (boost::thread) API. The advantage of this approach is that boost::platform_thread member functions may be able to preserve invariants that otherwise might be broken if the user was allowed to manipulate the underlying OS thread ID itself, and if the coverage of the boost::platform_thread member functions is large enough, it might not even be necessary to expose the OS thread ID at all.
This is exactly what I would like to see. Boost::thread and other classes should be platform neutral, but provide a method to get at the private handles so that people can extend the class for specific platforms on their own.
Bob wasn't suggesting exposing the private handles. Quite the contrary. He was suggesting returning a type that had access to those private handles, but only via a platform-specific interface.
Another thing I would REALLY like to see is better documentation. I'd love to use more Boost classes, but I don't have time to reverse engineer them to figure out how they work.
I'm sure the library authors would be interested in your patches to improve their documentation! ;-) Seriously, if you have specific needs that aren't being met, you need to address them on a library-by-library basis. Furthermore, when possible, submit patches with additions that would help others like yourself in the future. -- Rob Stewart stewart@sig.com Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;