network kitaplığındaki bir tasarım kararını daha iyi anlamaya çalışıyorum. Saygın kaynaklar, a github issue ve mailing list response numaralı telefonlarda network
'un bloke olmayan soketler kullanmasından bahsetmektedir. Varsayılan engelleme davranışını kullanmak yerine, soket okunmaya hazır olana kadar bloklamak için select kullanın. Bu neden daha iyi? Her iki durumda da engelleme sona erer ve network
sadece son kullanıcılara bir engelleme API'si sunar. Tahminimce bir FFI çağrısının engellenmesi ve select
civarında bir çeşit GHC büyüsü olması kötü bir şeydir, ancak bunu doğrulayamadım.Neden haskell'in ağ kitaplığı engelleme olmayan soketleri kullanır?
Kük bir kenara göre, 'un network
içinde aranan yerini bulamıyorum. Kod tabanını kırmak bir şey ortaya atmadı. Ben sadece, select
doğrudan aramak yerine kullanılabilecek işlevleri sağlamak gibi görünüyor GHC.Event, keşfettim ama grepping gösterir network
da bunu kullanmaz.
ghc çalışma zamanı sisteminde bir yer (veya anket) döngüsü bulunmalıdır. Genel olarak, ghc, her yerde engellemeyen G/Ç kullanmayı dener. – melpomene
Bu _guess_, bunun GHCs yeşil iş parçacığı zamanlayıcı için (muhtemelen) başka bir iş parçacığına denetim vermesi için bir 'verim' noktası olarak kullanılmasını isterim? Gerçekten de bilmiyorum. – Cubic