int val = memLoc[index++];
क्या मैं निम्नलिखित कोड लॉक मुक्त/परमाणु बना सकता हूं?
या बेहतर अभी तक
int val = memLoc[index++ & 0xFF];
एक threadsafe एक साझा अंगूठी बफर जहां प्रत्येक कॉल अगले मूल्य हो जाता है से पढ़ने के करने के लिए कोशिश कर रहा है - और मुझे अच्छा लगेगा ताला मुक्त होने के लिए पर अगर सब कुछ संभव है क्योंकि यह एक टन होता है। कोई बूस्ट/सी ++ 11 अनुमति नहीं है :(
आपको [इस आलेख] को पढ़ने में रुचि हो सकती है (http://www.codeproject.com/Articles/43510/Lock-Free-Single-Producer-Single-Consumer-Circular)। –
कोई सी ++ 11 का मतलब है कि आपको प्री-स्टैंडर्ड समाधान की आवश्यकता है। यदि बूस्ट अस्वीकार्य है तो अन्य सभी पुस्तकालय (थिएटर कठोर लाइसेंस शर्तों के साथ) संभवतः बाहर भी हैं, इसलिए आप पोर्टेबल कुछ भी नहीं प्राप्त कर सकते हैं। तो, आपको किस ओएस पर इसकी आवश्यकता है? – MSalters
'memLoc' किस प्रकार का है? क्या यह एक सूचक (या सरणी) 'int' में है? –