問題タブ [libev]

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 投票する
2 に答える
1214 参照

networking - kqueue の制限は何ですか?

libev ( source ) のドキュメントには、次のように書かれています。

Kqueue は特筆に値します。この記事の執筆時点では、NetBSD を除くすべての BSD で壊れていました (通常、Darwin を除いて、ソケットとパイプ以外では確実に動作しませんが、Darwin ではもちろん完全に役に立ちません)。

また、次のことにも言及しています。

kqueue syscall は既知のすべてのバージョンで壊れています。ほとんどのバージョンはソケットのみをサポートし、多くのバージョンはパイプをサポートしています。

では、kqueue の制限は何ですか? これらの制限はどこに文書化されていますか? 初期の調査では、古いオペレーティング システム (Mac OS X 10.3) でのカーネル パニックへの言及と、不正確または不完全なドキュメントに関する苦情が見つかりました。これらの情報源がどれほど信頼できるかはわかりません。

特に、kqueue がソケット (AF_UNIX、AF_INET、および AF_INET6) で確実に動作する場合は、気にしません。Mac OS X と FreeBSD の実装に関する情報に特に興味があります。

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

windows - Node.js は Windows で本番環境に対応していますか?

新しい 0.5.1 ブランチには、Node.js の公式の Windows 実行可能ファイルがあります。Node.js の Linux バージョンは、v8、libev、libeio などの確立されたライブラリを使用します。

libev と libeio は *NIX プラットフォーム用です。Node.js の Windows ポートは本番環境で使用する準備ができていますか?それとも開発専用ですか?

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

macos - 負荷テストのために osx のソケットの制限を増やす方法は?

libev を使用して、作業中のアプリへの多数の開いている tcp 接続を作成するロード テスターを作成しています。現在、nofiles の制限により、256 接続で爆発しています。

以下を実行して、これを 1024 に増やすことができます。

しかし、これ以上増やすことはできません。理想的には、1048576 に設定したいと考えています。次のエラーが発生します。

osxでulimitをさらに増やすにはどうすればよいですか?

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

c++ - Windows上のLibev

libevent対を検討しlibevます。libevライブラリはWindowsでIOCPをネイティブにサポートしていますか?

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

c++ - Cコード全体でboost::bind()を使用すると、機能しますか?

boost::bind(mycallback, this, _1, _2)Cコード全体で使用できますか?

アップデート

簡単な答えはノーです。ブーストバインドは関数ポインターを返しません。関数ポインターはCコードで呼び出すことができますが、関数(オーバーロードされた演算子を持つC ++オブジェクト())は以下の答えを参照してください。

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

boost-thread - Hiredis、libev、boost:threads

hiredis および libev ライブラリを使用して単純な Redis クライアントを作成しようとしています。イベントループを停止することを除いて、すべてが順調に進んでいます-m_thread.join()がスタックしました。初期化中のものをすべて新しく作成されたスレッドに移動しても何も起こりません。

ここに私のコードの一部があります:

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

c++ - libevent /libevを使用したCまたはC++:UNIXソケットを監視します

UNIXソケット( "/ tmp / mysocket")を監視しようとしています。

Node.jsでこれをうまく行うことができます:1)ソケットがバインドされている、2)誰かがソケットに接続している、3)データがソケットに送信されている、4)ソケットが切断されているときにイベントが発生します。

これをC/C++で実行しようとしています。上記のイベントについて「/tmp/mysocket」を監視したいと思います。libevent(できれば使用したい)を見てきましたが、IP:portが必要であることがわかりました。UNIXソケットを監視する方法はありますか?

または、誰かが別のC / C ++ソリューションを提案できますか?

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

c - C/libev: イベントがトリガーされるとプログラムが閉じます

次の libev コードがあります。

すべてがうまく機能します(ほぼ)。コンパイル:gcc file.c -levを実行します./a.out。次に、./a.outリッスンしているソケットに書き込みます: echo "gobblydeegook" | nc -U /tmp/mysocket

Hello が期待どおりにコンソールに表示されます。

しかし、プログラムはイベントを呼び出し、「hello」を無限に出力し続けます! このUNIXソケットの書き込みを監視し続けたい。これを行う方法?

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

libevent - libevとlibeventの違いは何ですか?

2つのライブラリは両方とも非同期I/Oスケジューリング用に設計されており、どちらもLinuxではepollを使用し、FreeBSDなどではkqueueを使用します。

表面的な違いを除いて、これら2つのライブラリの本当の違いは何ですか?建築、またはデザイン哲学に関して?

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

c - Libev-I/Oコールバック

TCPソケットを使用するC/Linuxのチャットサーバーがあります。libevを使用すると、ソケットの読み取りイベント用のev_ioウォッチャーを1回作成できます。何かのようなもの:

読み取りイベントは、読み取るデータがある場合にのみ発生するため、これは正常に機能します。ただし、書き込むデータがない場合でも常に発生するため、書き込みイベントの処理方法を変える必要があります。この問題を解決するために、read_callbackに、書き込みの準備ができているデータがある場合にのみ書き込みデータのev_ioウォッチャーを作成させます。その後、write_callbackは、メッセージを送信した後にウォッチャーを削除します。

これは、メッセージを処理する必要があるたびに、書き込みウォッチャーの割り当て、初期化、設定、監視、監視解除、および割り当て解除を行っていることを意味します。私はこれを誤って非効率的に扱っているのではないかと心配しています。

libevでwrite_callbackイベントを処理するための最良の方法は何ですか?

前もって感謝します。