2009-11-05 7 views
5

के माध्यम से पढ़ने/लिखने के लिए कैसे अवरुद्ध करना कोई रिमोट फाइल सिस्टम (जैसे एनएफएस, एसएसएचएफएस, या सैम्बाफ) पर फ़ाइलों को लिखने और पढ़ने का कोई तरीका है इस तरह से पढ़ने या लिखने या यहां तक ​​कि तुरंत वापसी भी एरर कोड? असल में मैं ट्विस्ट का उपयोग कर रहा हूं और मैं जानना चाहता हूं कि मेरे रिएक्टर को अवरुद्ध किए बिना दूरस्थ फ़ाइलों तक पहुंचने का एक सुरक्षित तरीका है या नहीं।रिमोट फाइलसिस्टम

उत्तर

7

मुड़ में, के लिए किसी भी अन्य अवरुद्ध कॉल के लिए जैसे दूरस्थ फ़ाइल सिस्टम, आप threads.deferToThread उपयोग कर सकते हैं - एक यथोचित सुरुचिपूर्ण तरीका परेशान अवरुद्ध syscalls से निपटने के लिए -!)

1

यह वास्तव में बहुत मेरे प्रश्न पूछा के समान है here। ऐसा लगता है कि वर्तमान में ऑपरेटिंग सिस्टम की सीमाओं को प्राप्त करने का एकमात्र तरीका आपके लिए आईओओ को संभालने के लिए धागे या बाहरी प्रक्रियाओं का उपयोग करना है।

पिछले जीवन में (गैर-अजगर या मुड़ता हुआ, लेकिन बहुत असीमित), हमने फ़ाइल IO को अलग डिमन में समाप्त कर दिया जो अनिवार्य रूप से हमारे 'फ़ाइल सिस्टम कार्यकर्ता' था।

लिनक्स के 2.6.x संस्करणों ने कर्नेल स्तर पर एसिक्रोनस आईओ के लिए अधिक समर्थन जोड़ा है, libaio इसके लिए समर्थन है, लेकिन यह वास्तव में समर्थन करता है कि यह सुंदर आर्केन और संदिग्ध दिखता है।

+0

दुर्भाग्य से एआईओ इस तरह के अच्छे आकार में नहीं है: http://stackoverflow.com/questions/87892/what-is-the-status-of-posix-asynchronous-io-aio (प्रश्न में पहला लिंक है विशेष रुचि का) –