क्या वहां कोई सी या सी ++ कंपाइलर्स हैं जो volatile
चर के लिए "आक्रामक" स्मृति स्थिरता मॉडल लागू करते हैं? "आक्रामक" स्थिरता मॉडल से मेरा मतलब है कि जेनरेट कोड में मेमोरी बाधाओं के साथ सभी volatile
चर के साथ सभी लिखते हैं।सी और सी ++ कंपाइलर्स "आक्रामक" अस्थिर अर्थशास्त्र
AFAIK, यह IA64 (Itanium) प्लेटफ़ॉर्म पर सी या सी ++ कंपाइलर्स के लिए पारंपरिक व्यवहार है। X86 के बारे में क्या? क्या वहां कोई कंपाइलर है जो लागू करता है (या लागू करने के लिए कॉन्फ़िगर किया जा सकता है) x86 प्लेटफ़ॉर्म पर volatile
चर को संभालने के लिए Itanium- जैसा दृष्टिकोण?
संपादित करें: 2005 वी.एस. (टिप्पणियों को पढ़ने के बाद) उत्पन्न कोड को देख रहा हूँ और मैं कुछ भी है कि स्मृति बाधा के किसी भी प्रकार के समान होगा जब volatile
चर तक पहुँचने नहीं दिख रहा। एमईएसआईएफ (इंटेल) और MOESI (एएमडी) कैश प्रोटोकॉल के कारण, एकल-सीपीयू मल्टी-कोर x86 प्लेटफ़ॉर्म पर स्मृति स्थिरता सुनिश्चित करने के लिए यह बिल्कुल ठीक है।
हालांकि, यह एक बहु-सीपीयू एसएमपी x86 मंच पर अपर्याप्त प्रतीत होता है। सीपीयू के बीच मेमोरी स्थिरता सुनिश्चित करने के लिए एक एसएमपी मंच को जेनरेट कोड में मेमोरी बाधाओं की आवश्यकता होगी। मैं क्या खो रहा हूँ? जब माइक्रोसॉफ्ट का दावा है कि वे पहले से ही volatile
चर पर अधिग्रहण-रिलीज सेमेन्टिक्स प्राप्त कर चुके हैं तो माइक्रोसॉफ्ट का क्या अर्थ है?
[रेमंड चेन के अनुसार] (https://blogs.msdn.com/b/oldnewthing/archive/2011/04/19/10155452.aspx?Redirected=true) आपको यह व्यवहार VS2005 और नए – Praetorian
के साथ मिलता है @ प्रिटोरियन: [आधिकारिक दस्तावेज़ीकरण के अनुसार] (http://msdn.microsoft.com/en-us/library/12a04hfd.aspx) साथ ही साथ। ; -] – ildjarn
@AndreyT: क्या आप वीसी ++ 2005 या वीसी ++ 2005 एसपी 1 का परीक्षण कर रहे हैं? आईआईआरसी, वीसी ++ 2005 आरटीएम में एक बग था जहां 'अस्थिर' में अपेक्षित अर्थशास्त्र नहीं थे, जिसे एसपी 1 और वीसी ++ 2008+ में तय किया गया था। – ildjarn