問題タブ [epoll]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1056 参照

python - Tornado で (終わりのない) システム コールを処理するにはどうすればよいですか?

たとえば、次のコードがあるとします。

そのような出力をブラウザに提供するにはどうすればよいですか? 停止ポイントがないため、ポーリング ループのどこにフックすればよいかわかりません。それ以上に、印刷行が機能するため (端末に行がダンプされていることがわかります)、ブラウザーはまったく同じ行を取得しません。以下を参照してください。

0 投票する
1 に答える
219 参照

linux - epoll と一度に複数の興味を設定する

興味深いことに、2004 年の古いスライドではなく、これに関する議論を見つけることができません。

IMHO、現在のepoll()使用スキームは、呼び出しのようなものを求めていepoll_ctlv()ます。この呼び出しは、一般的な HTTP Web サーバーでは意味がありません、同じデータを一度に複数のクライアントに送信するゲーム サーバーでは意味があります。epoll_ctl()すでに存在するという事実を考えると、これを実装するのは難しくないようです。この機能がない理由はありますか? たぶん、最適化ウィンドウはありませんか?

0 投票する
2 に答える
7745 参照

linux - linux-eventfdをepollと一緒に動作させることができません

私はepollに基づいた単純なサーバークラスを書いています。目を覚ますためにepoll_wait()、eventfdを使うことにしました。シンプルなイベントコミュニケーションに向いているとのことで、そう思います。だから私は自分のイベントを作成し、それに時計を置きました:

メッセージ待機ループの後半、別のスレッドで:

そしてもちろん、サーバーを停止するコードは次のとおりです。

epoll_wait()説明できない理由で、イベントに書いただけでは目を覚ますことができませんでした。最終的に、これはいくつかのデバッグセッションで機能しました。

これが私の回避策ですEPOLLOUT。fdが書き込み可能になるたびにイベントがトリガーされることを知っているので、停止コードを次のように変更しました。

今は動作しますが、このようにすべきではありません。

これは難しいことではないと思います。私は何を間違えましたか?

ありがとう

0 投票する
2 に答える
3113 参照

epoll - ePoll が Poll よりも優れているのはなぜですか?

短い質問ですが、私には理解するのが難しいです。

ePoll が Poll よりも優れているのはなぜですか?

0 投票する
5 に答える
10502 参照

c++ - epoll_wait 使用時にデータを正しく読み取る方法

IOCP を使用する既存の Windows C++ コードを Linux に移植しようとしています。epoll_wait高い同時実行性を達成するために使用することに決めたので、受信したデータをいつ処理しようとするかという理論的な問題にすでに直面しています。

2 つのスレッドが を呼び出しepoll_wait、Linux が最初のスレッドのブロックを解除し、すぐに 2 番目のスレッドのブロックを解除するような 2 つの結果メッセージを受信したとします。

例 :

このシナリオは考えられますか?つまり、それは発生することができますか?

recv/processing コードでの同期の実装を避けるために、それを防ぐ方法はありますか?

0 投票する
3 に答える
4710 参照

c++ - 単一のファイル記述子を使用すると、select、poll、epoll、および ... の間にパフォーマンスの違いはありますか?

タイトルは本当にそれをすべて言います。

and ... は、pselect と ppoll も含めることを意味します。

私が取り組んでいるサーバー プロジェクトは、基本的に複数のスレッドで構成されています。各スレッドは、1 つ以上のセッションを処理します。すべてのスレッドは同一です。プロトコルは、どのスレッドがセッションをホストするかを処理します。

私は物事をまとめる社内ソケットクラスを使用しています。興味深い点は、poll (linux) または select (windows) のいずれかを呼び出す checkread 呼び出しです。

要約すると、現在、各スレッドは単一のソケットで poll を呼び出しています。私が知る限り、epoll を使用することは、このスレッドが HTTP サーバーなどの複数のソケットを参照している場合にのみ有効です。私の場合、それは私がしていることではありません。また、このクラスは一度に 1 つのソケットしか処理しません。

epoll のマニュアル ページには、エッジ トリガーとレベル トリガーに関する簡単な説明があります。それが何を意味するのかよくわかりません。ソケット クラスでは、ioctlsocket と FIONREAD を使用して選択呼び出しをショートカットし、データがあるかどうかを確認するコードの Windows 部分に最適化が見られます。呼び出し時に完全な UDP パケットが到着していなくても、それが > 0 を返すかどうか疑問に思っています。これは epoll のエッジ トリガーですか?

いくつかの初歩的なテストでは、select と poll の使用に目立った違いは見られません。

ppoll を使用すると、タイムアウトの精度が向上するため、利点があることがわかります。何かご意見は?

はい、大量のデータを受信するセッションのスループットを最適化しようとしています。サーバーは、CPU よりもネットワークとディスクにバインドされています。

0 投票する
4 に答える
16693 参照

linux - イベント駆動型と非同期の違いは何ですか?epollとAIOの間?

イベント駆動型と非同期は、多くの場合、同義語として使用されます。2つの間に違いはありますか?

epollまた、との違いは何aioですか?それらはどのように組み合わされますか?

最後に、LinuxのAIOがひどく壊れていることを何度も読みました。それはどのくらい正確に壊れていますか?

ありがとう。

0 投票する
1 に答える
2136 参照

linux - Linux でのマルチスレッド epoll の問題

epoll(7) を使用するマルチスレッド Linux プログラムがあります。epoll(7) の man ページには、その fd の 1 つが閉じられると、この fd は epoll セットから自動的に削除されると書かれています。私の質問は、epoll セットが同期せずに別のスレッドで同時にポーリングされている間に、epoll セットの fd が 1 つのスレッドで閉じられた場合です。プログラムが壊れたり、カーネルがこのアクセスを自動的に同期したりしますか?

ありがとう

風水

0 投票する
1 に答える
1972 参照

javascript - process.nextTickエラーを解決する方法は?

node.jsを使用してTCPサーバーを構築していますが、次のエラーが発生しました。これを解決する方法は?