On 4/27/07, Ken Klose <ken.klose@future-skies.com> wrote:
I've got a singleton object that is trying to run its operator() method in a
separate thread, but I'm getting a segfault when I construct the thread
object:

PublishedListener::PublishedListener(string directory)
{
    _thread = new thread(*this);   // segfault here
}

PublishedListener.h:
class PublishedListener
{
public:
    static PublishedListener &getInstance();
    void run();
    void operator()();
    boost::filesystem::path getItemDirectory();
    virtual ~PublishedListener();
private:
    PublishedListener(std::string directory);
    static PublishedListener *_instance;
    boost::thread *_thread;
    boost::filesystem::path *itemDirectory;
};

Thanks in advance!
Are you sure the implementation of operator()() isnt seg faulting, the thread should be able to invoke it properly and i dont see any reason for the thread instantiation to segfault..
HTH
Digz