मैंने कई स्थानों पर पढ़ा है जो Boost.Signals थ्रेडसेफ नहीं है लेकिन मुझे इसके बारे में अधिक जानकारी नहीं मिली है। यह सरल उद्धरण वास्तव में इतना नहीं कहता है। अधिकांश अनुप्रयोगों में आजकल धागे होते हैं - भले ही वे सिंगल थ्रेडेड होने का प्रयास करते हैं, फिर भी उनके कुछ पुस्तकालय धागे का उपयोग कर सकते हैं (उदाहरण के लिए libsdl)।बूस्ट: Boost.Signals में थ्रेडसेफ वास्तव में क्या नहीं है?
मुझे लगता है कि कार्यान्वयन में स्लॉट तक नहीं पहुंचने वाले अन्य धागे के साथ समस्या नहीं है। तो यह इस अर्थ में कम से कम थ्रेडसेफ है।
लेकिन वास्तव में क्या काम करता है और क्या काम नहीं करेगा? क्या यह इसे कई धागे से उपयोग करने के लिए काम करेगा जब तक कि मैं इसे एक ही समय में कभी भी एक्सेस नहीं करता? अर्थात। अगर मैं स्लॉट के चारों ओर अपने म्यूटेक्स का निर्माण करता हूं?
या क्या मुझे केवल उस थ्रेड में स्लॉट का उपयोग करने के लिए मजबूर किया गया है जहां मैंने इसे बनाया था? या जहां मैंने पहली बार इसका इस्तेमाल किया था?
यह थोड़ी देर हो गया है ... क्या इसका मेरा जवाब समझ में आया? असल में सिग्नल लाइब्रेरी * स्वयं * किसी भी थ्रेड से आपके द्वारा किए गए कॉलों के बावजूद क्रैश नहीं होगा जब तक कि वे "मान्य" हों ... लेकिन आप अपने कोड में अर्थशास्त्र के लिए ज़िम्मेदार हैं। – HostileFork
हाँ यह समझ में आता है लेकिन यह वास्तव में मेरे सभी सवालों का जवाब नहीं देता है। :) मूल रूप से आपने कहा "स्रोत में इसे देखो"। मैं इसे बाद के बिंदु पर करूँगा और उसके बाद मेरे सवालों के सभी सटीक उत्तर पोस्ट करूंगा। – Albert
आपने पूछा "वास्तव में क्या काम करता है और क्या काम नहीं करेगा?" मैंने महसूस किया कि आपके संक्षिप्त विशिष्ट प्रश्नों को विच्छेदन करने से कहीं अधिक आवश्यक था।(वे उत्तर हैं "हां: यदि आप एक म्यूटेक्स के साथ सावधान हैं जो ठीक है, लेकिन संभवतः अनावश्यक है यदि आपके स्लॉट के अर्थशास्त्र ऐसे हैं कि एक से अधिक थ्रेड एक समय में चल रहे हैं; यह किसी भी अन्य फ़ंक्शन को कई धागे से कॉल करने जैसा है" और "नहीं: आप केवल उन धागे में स्लॉट का उपयोग करने के लिए प्रतिबंधित नहीं हैं जहां वे बनाए गए हैं।") – HostileFork