$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Jens Maurer (Jens.Maurer_at_[hidden])
Date: 2001-09-08 12:45:45
Before the time runs out, I've looked briefly at threadcorrect1.zip.
The library should be accepted into boost.
- Most of tss.cpp is wrapped into BOOST_HAS_WINTHREADS,
but the #include "threadmon.hpp" is not, which makes the
compilation fail (or is tss.cpp not supposed to be compiled
on POSIX at all?)
- The new config system should base BOOST_HAS_THREADS
on the compiler ("does the compiler support threads at
all"), and BOOST_HAS_xxxTHREADS on the platform ("what
does the interface look like"). Similarly, nanosleep
and gettimeofday are platform (or probably library)
concerns.
- xtime.hpp uses "boost/stdint.h", which is deprecated
and fails with como on my Linux box. Use "boost/cstdint.hpp"
instead (need to fix uintXX_t usage in the code as well).
- Please add a newline at the end of once.hpp
- Something needs to be declared "extern C", or a wrapper added:
"once.cpp", line 45: error: argument of type "void (*)()" is incompatible with
parameter of type "void (*)() C"
pthread_once(&flag, func);
^
"thread.cpp", line 103: error: argument of type "void *(*)(void *)" is
incompatible with parameter of type "void *(*)(void *) C"
int res = pthread_create(&m_thread, 0, &thread_proxy, ¶m);
^
"tss.cpp", line 134: error: argument of type "void (*)(void *)" is
incompatible with parameter of type "void (*)(void *) C"
int res = pthread_key_create(&m_key, cleanup);
^
- If you need to add "extern C" to some function definitions, do make
sure to give those implementation-detail functions "static" linkage.
An unnamed namespace won't cut it, because the namespace is not
coded in the function name for "extern C" functions.
- I'm unsure why I get these:
"tss.cpp", line 134: error: argument of type "void (*)(void *)" is
incompatible with parameter of type "void (*)(void *) C"
int res = pthread_key_create(&m_key, cleanup);
^
"tss.cpp", line 135: error: identifier "__assert_fail" is undefined
assert(res == 0);
^
"tss.cpp", line 144: error: identifier "__assert_fail" is undefined
assert(res == 0);
^
- Please fix the indentation in timeconv.inl, it looks ugly
with 8 char tabstops. Oh yes, boost tends to avoid tabs at all.
- I notice that thread.hpp includes pthread.h, but only
thread.cpp includes "windows.h". This is asymmetric, but probably
required, and not too grave.
Jens Maurer