मैं एक थ्रेड को रोकने के लिए एक सशर्त चर का उपयोग कर रहा हूं जब तक कि कोई अन्य धागा अपनी कार्य कतार (लंबी कहानी) को संसाधित नहीं कर लेता है। तो, एक धागे पर मैं ताला और इंतजार:प्रसंस्करण को पूरा करने के लिए धागे की प्रतीक्षा करने के लिए मैं बूस्ट कंडीशन चर का उपयोग कैसे करूं?
boost::mutex::scoped_lock lock(m_mutex);
m_condition.wait(lock);
अन्य धागा यह कार्य पूरा कर लिया है एक बार, यह प्रतीक्षा धागा संकेत है इस प्रकार है:
boost::mutex::scoped_lock lock(m_parent.m_mutex);
m_parent.m_condition.notify_one();
समस्या मैं देख रहा हूँ
कि प्रतीक्षा है धागा इंतजार करना बंद नहीं करता है जब तक कि मैं इसके बाद दिए गए निर्देशों पर ब्रेकपॉइंट सेट नहीं करता (मैं xcode, fyi का उपयोग कर रहा हूं)। हाँ, यह अजीब लगता है। क्या किसी को पता है कि यह क्यों हो रहा है? क्या मैं कंडीशन वैरिएबल का गलत इस्तेमाल कर रहा हूं?
कोड थोड़ा भ्रामक है ... पहले 'दूसरे' m_parent.m_mutex' रूप में एक ही उदाहरण m_mutex' है? –