This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: compile time constants for selecting thread functionality


Benjamin Kosnik wrote:

include/tr1/boost_shared_ptr.h:
// TODO This should go into a separate header really.
enum _Lock_policy { _S_lockfree, _S_mutex, _S_single };


static const _Lock_policy __shared_ptr_default_lock_mode = #ifdef __GTHREADS
// NOTE: This doesn't actually exist yet in the compiler.
#ifdef _GLIBCXX_ATOMIC_BUILTINS
_S_lockfree;
#else
_S_mutex;
#endif
#else
_S_single;
#endif


Only one comment (I have yet to digest your entire email ;) : about shared_ptr, where there are no issues wrt the built library and so on, it's all in the header, I was more or less assuming that _GLIBCXX_ATOMIC_BUILTINS was about to go in favor of a "fine grained" (i.e., sensitive to current sub-target, like i386 vs i486) preprocessor builtin, named, according to Mark's indications, __GCC_HAVE_ATOMIC_BUILTINS. As a matter of fact, I have here an almost done patch, developed with Paolo Bonzini, which implements the builtin, I should post it in a few days... I'm not sure how that will fit in your whole picture, but I think you can confidently assume that for 4.3 or even 4.2 (if we are "lucky" ;) such preprocessor builtin will be available for the uses you want to make of it...

Paolo.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]