कहें कि मैंने एकाधिक कॉलबैक के साथ genl_register_family_with_ops
का उपयोग करके एक सामान्य नेटलिंक इंटरफ़ेस पंजीकृत किया है।लिनक्स कर्नेल जेनेरिक नेटलिंक - क्या यह समवर्ती है?
मुझे इसके बारे में कोई चेतावनी नहीं दिखाई दे रही है और मुझे लगता है कि कॉलबैक को क्रमशः बुलाया जाता है लेकिन कॉलबैक को न तो कैसे कहा जाता है इसके बारे में कोई जानकारी नहीं है।
क्या यह संभव है कि एक ही सामान्य नेटलिंक इंटरफ़ेस पर एकाधिक कॉलबैक समवर्ती रूप से कॉल किए गए हों? क्या मुझे कॉलबैक के बीच कोई सिंक्रनाइज़ेशन चाहिए?
एक भी नेटलिंक कॉलबैक रोका जा सकता है या समवर्ती दो कोर में चलाएँ:
सवाल आसान बनाने के लिए?
कॉल ईवेंट को ईवेंट होने पर कॉल किया जाता है। यदि कॉलबैक समाप्त होने से पहले एक और घटना होती है, तो उसे एक ओवरलैपिंग कॉल मिल जाएगी। – stark
@ स्टार्क मैं अधिक विशेष रूप से पूछ रहा हूं कि क्या मुझे उसी नेटलिंक परिवार पंजीकरण पर दो घटनाएं मिल सकती हैं जो कॉलबैक ओवरलैप कर सकती हैं। एकाधिक कॉलबैक के साथ केवल एक पंजीकरण है। नेटलिंक कॉलबैक समान संरचनाओं को संशोधित करेंगे और संरचनाओं को केवल नेटलिंक कॉलबैक द्वारा संशोधित/एक्सेस किया जाएगा। – Etherealone
@Etherealone मुझे संदेह है कि जवाब यह है कि यह विन्यास योग्य है, लेकिन डिफ़ॉल्ट रूप से बंद है। कर्नेल 3.11 के स्रोतों की मेरी प्रति में, 'struct genl_family' में' bool parallel_ops' है। 'Linux-3.11.10-21/net/netlink/genetlink.c: 674' या nearabouts में,' genl_rcv_msg() 'में, यदि वह ध्वज सेट नहीं है, तो वैश्विक म्यूटेक्स लॉक हो गया है, अनुरोध संसाधित हो गया है, और वैश्विक म्यूटेक्स अनलॉक। यदि यह सेट है तो यह लॉकिंग नहीं होती है। –