Boost logo

Boost Users :

From: Simon Carter (simon.carter_at_[hidden])
Date: 2005-06-29 05:48:41


I'm having some difficulty understanding what I need to implement in
tss_cleanup_implemented when using boost.thread

I'm using
Windows
Borland C++ Builder 6 (bcc32 v5.6.4)
Roguewave stl
Static (.lib) build of boost.thread

In my project I #define BOOST_THREAD_USE_LIB

My first problem was a pair of unresolved externals - this seems to happen
occasionally with boost, bcb6 & roguewave. The missing definitions were

boost::thread::thread(boost::function0<void>&)

and

boost::detail::tss::init(boost::function1<void, void *,
std::allocator<boost::function_base> > *)

I resolved these by forcing the compiler to generate the relevant code by
#including the implementation definitions and creating a function which is never
called so:

#if (__BORLANDC__ >= 0x560) && defined(_USE_OLD_RW_STL)
    #include <boost/thread.hpp>
    #include <boost/thread/tss.hpp>
    #include <libs/thread/src/thread.cpp>
    #include <libs/thread/src/tss.cpp>

    void DummyFuncToGenerateTemplateSpecializations(void)
    {
    // This forces generation of
    // boost::thread::thread(boost::function0<void>&)

        boost::function0<void> A = NULL;
        boost::thread B(A);

    // This forces generation of
    // boost::detail::tss::init(boost::function1<void, void *,
    // std::allocator<boost::function_base> > *)
    // but has the consequence of requiring the deliberately undefined function
    // tss_cleanup_implemented

        boost::function1<void, void*>* C = NULL;
        boost::detail::tss D(C);
    }

But this then causes a call to the deliberately undefined
tss_cleanup_implemented so I get another unresolved external. I can't find any
info on the sort of thing I need to implement in tss_cleanup_implemented.

What should I be doing? Or I have gone wrong somewhere else?

Thanks in anticipation

Simon


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net