पर परमाणु वृद्धि मैंने मैक ओएस एक्स पर परमाणु वृद्धि और कमी ऑपरेटर के लिए गुगल किया है और "OSAtomic.h" पाया है, लेकिन ऐसा लगता है कि आप इसे केवल कर्नेल स्पेस में उपयोग कर सकते हैं।मैक ओएस एक्स
Jeremy Friesner ने मुझे एक क्रॉस-प्लेटफार्म atomic counter पर इंगित किया जिसमें वे ओएस एक्स पर असेंबली या म्यूटेक्स का उपयोग करते हैं (जहां तक मैं ifdefs के इंटरलिविंग को समझता हूं)।
क्या ओएस एक्स पर InterlockedDecrement
या atomic_dec()
जैसी कोई बात नहीं है?
गी, यह अजीब है! http://developer.apple.com/Mac/library/documentation/Darwin/Reference/KernelIOKitFramework/OSAtomic_h/index.html OSDecrementAtomic निर्दिष्ट करता है, लेकिन मुझे OSAtomicDecrement32 का कोई संदर्भ नहीं दिखता है, भले ही यह ठीक से संकलित हो। कर्नेल केवल एक मेलिंग सूची संग्रह पर पढ़ा गया था ... धन्यवाद पीएस: यदि आपको पता है कि दस्तावेज़ आपके कोड से अलग क्यों कहता है, तो मुझे जानकर खुशी होगी। – gaspard
'libkern' भाग _ कर्नेल मोड_ का अर्थ नहीं है। उन्हें कर्नेल और ड्राइवर विकास ढांचे के हिस्से के रूप में पेश किया जाता है - विवरण के लिए देखें (http://developer.apple.com/mac/library/documentation/DriversKernelHardware/Reference/libkern_ref/index.html)। हो सकता है कि आप इसके बजाय 'OSAtomicDecrement32Barrier()' संस्करण का उपयोग करना चाहें। –
@ डी। शॉली: मुझे मेमोरी बाधा की आवश्यकता नहीं है क्योंकि मैं स्मृति आवंटित नहीं कर रहा हूं (मैं एक समवर्ती संदर्भ गिनती कक्षा के लिए काउंटर का उपयोग करता हूं)। – gaspard