मैं की तरहNondeterministically इंटरलिविंग नाली के सूत्रों का कहना है
interleave :: WhateverIOMonadClassItWouldWant m => [(k, Source m a)] -> Source m (k, a)
उपयोग के मामले में प्रकार हस्ताक्षर के साथ स्रोतों के लिए एक गैर नियतात्मक इंटरलिविंग आपरेशन को देखने के लिए, उम्मीद थी कि मैं एक p2p अनुप्रयोग है कि पर कई नोड्स के लिए खुला सम्बन्ध बनाये रखते है नेटवर्क, और यह ज्यादातर उनमें से किसी के संदेशों के इंतजार के आसपास बस बैठे हैं। जब कोई संदेश आता है, तो यह परवाह नहीं करता कि यह कहां से आया था, लेकिन जितनी जल्दी हो सके संदेश को संसाधित करने की आवश्यकता है। सिद्धांत रूप में इस तरह के आवेदन (कम से कम जब सॉकेट जैसी स्रोतों के लिए उपयोग किया जाता है) जीएचसी के आईओ मैनेजर को पूरी तरह से बाईपास कर सकता है और select
/epoll
/आदि चला सकता है। सीधे कॉल करता है, लेकिन जब तक यह काम करता है, तब तक मुझे विशेष रूप से परवाह नहीं है कि यह कैसे कार्यान्वित किया जाता है।
क्या यह कंड्यूट के साथ ऐसा कुछ संभव है? एक कम सामान्य लेकिन शायद अधिक व्यवहार्य दृष्टिकोण [(k, Socket)] -> Source m (k, ByteString)
फ़ंक्शन लिखना हो सकता है जो आपके लिए सभी सॉकेट पर प्राप्त करता है।
मैं नाली में ResumableSource
संचालन देखा, लेकिन वे सभी एक विशेष Sink
है, जो इस कार्रवाई के लिए एक अमूर्त रिसाव का एक सा की तरह लगता है, कम से कम के बारे में पता होना चाहता हूँ करने लगते हैं।
फोर्कियो और एक चैन/टीसीएचएन को लपेटने वाले स्रोत का उपयोग करके सरल समाधान की तुलना में आपको कितनी तेजी से आवश्यकता है? –
मुझे जरूरी नहीं कि उच्च प्रदर्शन की आवश्यकता है (मुझे उम्मीद है कि इनमें से लगभग 1000 से अधिक सहकर्मियों को जोड़ने की उम्मीद है) लेकिन मैं आमतौर पर इन इटरेटे-जैसे अवशेषों में दिलचस्पी लेता हूं और सोच रहा था कि इस तरह के ऑपरेशन को प्रदान करना संभव था या नहीं conduits के साथ। यह कुछ प्रकार के नेटवर्क प्रोटोकॉल के लिए एक सामान्य रूप से सामान्य उपयोग मामले की तरह लगता है। – copumpkin
मेरा मानना है कि इवेंट मैनेजर करीब के करीब है जैसा कि आप सीधे 'चयन' या 'एपोल' का उपयोग किए बिना या कुछ पैकेज के माध्यम से प्राप्त करेंगे। मुझे नहीं लगता कि इवेंट मैनेजर से एक मतदान इंटरफ़ेस सामने आया है (यदि यह किया गया तो यह एक ईवेंट मैनेजर का अधिक नहीं होगा) ताकि आप किसी भी तरह के अधिकांश डिज़ाइनों के साथ कुछ थ्रेड और चैन के साथ समाप्त हो जाएंगे। मैं जो करता हूं वह एक 'स्रोत' से शुरू होता है जो एक बाध्य 'टीसीएचएन' लपेटता है, शुरुआत में प्रति थ्रेड को थ्रेड करता है। यदि प्रदर्शन के लिए आवश्यक है तो ईवेंट मैनेजर पर जाएं।यदि आपको अभी भी समस्याएं आ रही हैं तो हमेशा एफएफआई होती है। –