1

すべての ruby​​ IO クラスを、バックグラウンドでリアクターとファイバーを使用する別の実装に置き換えることは可能ですか? 実際、ネイティブの Ruby IO を使用するすべてのライブラリは期待どおりに動作します。これは、IO へのすべての呼び出しがファイバーでラップされ、要求された操作を待機するためです。しかし、接続/ファイルでデータが利用可能になるのを待っている間、ruby は他の io 操作を提供します。

4

1 に答える 1

0

可能ですか?はい、モンキーパッチ IO だけです。大変な仕事ですか?はい、でも本当にやりたいのなら、そうしてください。IO のパッチを適用する方法がわからない場合は、それを質問してください。

たとえば、オーバーライドするにはread:

class IO
  def read(count = -1)
    #Some fiber code here...
  end
end
于 2012-09-30T14:03:41.237 に答える