All:
I am trying to migrate from boost threads
to std threads, the code is in tickets/DM-2711
I did standard renames plus a couple of tweaks,
but things are hanging, and this is the code
I am having problem with:
+void
+WorkQueue::_startRunner(WorkQueue& wq) {
+ Runner(wq)();
+}
+
void
WorkQueue::_addRunner() {
std::unique_lock<std::mutex> lock(_runnersMutex);
- boost::thread(Runner(*this));
+ std::thread t(_startRunner, std::ref(*this));
+ t.detach();
_runnerRegistered.wait(lock);
}
The problem is that the thread does not start, and things
deadlock because registerRunner should be called inside
that thread, and it should unblock this:
_runnerRegistered.wait(lock);
but it is not happening.
We spent quite a bit of time with John trying to get that
piece of code to work, and clearly we didn't get it right.
Any suggestions anyone?
Jacek
########################################################################
Use REPLY-ALL to reply to list
To unsubscribe from the QSERV-L list, click the following link:
https://listserv.slac.stanford.edu/cgi-bin/wa?SUBED1=QSERV-L&A=1
|