
Perhaps you might give some thought to how a user could instrument synchronization primitives with tracing/logging? In my experience, the lack of such a facility is a deficiency in boost locks. User-supplied pre/post -acquisition + post-release callbacks might work, or making some of the lock/mutex functions virtual. If callbacks are used, I'm not picky about whether they're template or constructor parameters. It would be useful if they had access to the thread object (don't forget to define some reasonable behavior, for main), or if you provide a TLS (Thread-Local Storage) interface. BTW, TLS can be useful for other things, as well (e.g. building a logging/trace system with a dynamic scoping capability). Matthew Gruenke Software Engineer IntelliVid Corp.