2011-08-14 4 views
28

epoll में दो कार्य कर रहे हैं:एपोल थ्रेड-सुरक्षित है?

  1. epoll_ctl
  2. epoll_wait

हैं वे धागा सुरक्षित जब मैं एक ही epoll_fd का उपयोग करें?
क्या होगा यदि एक थ्रेड epoll_wait को कॉल करता है और अन्य एक ही समय में epoll_ctl को कॉल करते हैं?

+1

क्या आप एक ही epoll_fd का उपयोग करते हैं? –

+0

हाँ, मैं वही epoll_fd का उपयोग करता हूं। – atomd

+0

क्या आप अपने उपयोग के बारे में अधिक जानकारी दे सकते हैं? आपको एक ही एपोल एफडी का उपयोग क्यों करना है? यदि आप आरएक्स/टेक्स संरचना कर रहे हैं, तो आपके पास आईओ इवेंट्स के लिए एक एपॉल एफडी कोर्रेसपॉन्ड हो सकता है और एक बाहरी घटनाओं से मेल खाता है (यह मैं कुछ ऐप्स में उपयोग करता हूं) –

उत्तर

18

यह धागा सुरक्षित है, लेकिन वहाँ बहुत प्रलेखन स्पष्ट रूप से कहा कि है कि नहीं है - http://linux.derkeiler.com/Mailing-Lists/Kernel/2006-03/msg00084.html

देख BTW, तुम भी एक ही epoll_fd पर इंतजार कर रहे एक से अधिक थ्रेड हो सकता है, लेकिन इस मामले में यह एक प्राप्त कर सकते हैं थोड़ा मुश्किल (यानी आप एज-ट्रिगर (ईपीओएलईएलटी) या ऑनशॉट मोड (EPOLLONESHOT) का उपयोग करना चाह सकते हैं - http://linux.die.net/man/2/epoll_ctl देखें)