2012-05-02 12 views
14

is_lock_free के लिए एक उदाहरण की आवश्यकता क्यों है (यह सदस्य कार्य है)? प्रकार का मेटाफंक्शन क्यों नहीं है, या एक स्थिर constexpr सदस्य फ़ंक्शन क्यों नहीं?is_lock_free एक सदस्य फ़ंक्शन क्यों है?

मैं एक वास्तविक उदाहरण की तलाश कर रहा हूं कि यह आवश्यक क्यों है।

+0

क्या इसका नाम 'is_instance_free' है? नहीं QED। –

+6

ऐसा लगता है कि यह प्रदर्शन [यहां से उद्धरण] के कारण है (http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2427.html): प्रस्ताव लॉक-फ्री प्रदान करता है गठबंधन परमाणु चर के प्रदर्शन को दंडित किए बिना अपरिहार्य रूप से गलत तरीके से गलत हस्ताक्षर किए गए परमाणु चरों को अनुमति देने के लिए पूरे प्रकार की बजाय अलग-अलग वस्तुओं पर क्वेरी फ़ंक्शन ' –

+2

@JesseGood जो उत्तर की तरह लगता है। यह एक टिप्पणी क्यों है? ;) –

उत्तर

23

मानक एक प्रकार को कभी-कभी लॉक-फ्री होने की अनुमति देता है।

खंड 29.4 लॉक मुक्त संपत्ति

परमाणु _..._ LOCK_FREE मैक्रो इसी प्रकार के परमाणु ताला मुक्त संपत्ति, पर हस्ताक्षर किए और अहस्ताक्षरित वेरिएंट एक साथ समूहीकृत साथ संकेत मिलता है। गुण परमाणु टेम्पलेट के संबंधित (आंशिक) विशेषज्ञता पर भी लागू होते हैं। 0 का मान इंगित करता है कि प्रकार कभी भी लॉक-फ्री नहीं होते हैं। 1 का मान इंगित करता है कि प्रकार कभी-कभी लॉक-फ्री होते हैं। 2 का मान इंगित करता है कि प्रकार हमेशा लॉक-फ्री होते हैं।

C++ atomic paper n2427 राज्यों के पीछे का कारण:

... प्रस्ताव रन-टाइम ताला मुक्त क्वेरी कार्यों बल्कि संकलन समय स्थिरांक क्योंकि एक मंच के बाद के कार्यान्वयन पर ताला लगा अपग्रेड कर सकते हैं की तुलना में प्रदान करता है लॉक-फ्री ऑपरेशंस के साथ संचालन, इसलिए गतिशील पुस्तकालयों के पीछे ऐसी सुविधाओं को अमूर्त करने के लिए सिस्टम सामान्य है, और हम उस possiblility को खोलना चाहते हैं। इसके अलावा, हम अनुशंसा करते हैं कि हार्डवेयर परमाणु समर्थन के बिना कार्यान्वयन उस तकनीक का उपयोग करें। ...

और यह भी (के रूप में Jesse Good ने बताया):

प्रस्ताव के प्रदर्शन को दंडित बिना अनिवार्य गलत संरेखित परमाणु चर की अनुमति के लिए ताला मुक्त क्वेरी के बजाय पूरे प्रकार अलग-अलग वस्तुओं पर कार्य प्रदान गठबंधन परमाणु चर

+0

मैंने पूर्णता के लिए दूसरे उद्धरण में जोड़ा है। – Pubby

+0

निश्चित रूप से। वह हिस्सा आपके प्रश्न के लिए भी प्रासंगिक है। मैंने यह खो दिया। – user2k5

+0

मैं एक निश्चित संख्या में परमाणु मूल्यों या somesuch के साथ एक कार्यान्वयन की कल्पना भी कर सकता था। – Yakk