問題タブ [libuv]

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 に答える
184 参照

c++ - libuv のソースについて質問がありますか?

最近、libuvのソースを読みました。QUEUE.h を読むときにいくつか質問があります

まず: 以下のマクロ定義:</p>

QUEUE_PREV(q) を次のように再定義できますか。

それらの違いは何ですか?

第二に: 私は以下のコードを試します:

結果はコンソールでも同じですが、なぜですか? 「*」は機能しませんか?? このコードはVS2013で書いています。

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

c++ - libuv + C++ セグメンテーション違反

libuv を使用して C++ でストリームのラッパーを作成していますが、segfault が発生し、その理由がわかりません。ストリーム クラス:

そして実装

メインファイルでこれを行います:

ただし、これを実行するとすぐに、uv_runステートメントでセグメンテーション違反が発生します。バックトレース:

しかし、メソッドに uv_run を入れると、問題Stream::Writeなく動作します。どうすればこれを修正できますか?


編集

スタックではなくヒープにパイプを割り当てるようになりましたが、それでもセグメンテーション違反が発生します。uv_pipe_tヘッダーをに変更しuv_pipe_t*、実装は次のように変更されました。

GDB からのバックトレース:

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

c - libuv シンプル エコー クライアント

次のサンプル コードの UNIX パイプを使用して単純なエコー クライアントを開発しようとしています: https://github.com/nikhilm/uvbook/blob/master/code/pipe-echo-server/main.c

これは私のクライアントコードです:

しかし、実行するとすぐにセグメンテーション違反が発生します。サーバーから、プロセスが接続されたというメッセージが表示されます。GDB からのバックトレース:

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

node.js - 新しいイベントがキューに入れられていない場合、node.js アプリケーションはどのように実行し続けますか?

私の質問は、新しいイベントが存在しない場合でも、http サーバーのような node.js アプリケーションをどのように実行し続けるのですか?

新しいイベントがキューに入れられないと、libuv イベント ループが終了すると思いました。

イベントに登録されたイベントリスナーを使用した while(true) {} ループのようなものですか?

これが私の質問の簡単なコード例です:

ありがとう

編集: libuv io loop docから、各ループ反復の開始時にループが有効でなければならないことがわかっています。つまり、より多くのイベントが発生し、より多くのコールバックが実行されるように登録されます。

この例では、イベント リスナーが登録されていますが、次のループ反復の前にそれ以上イベントが起動されなかったため、プログラムは 1 つのイベントが処理された後に終了します。

ただし、この例では、タイマーがアクティブなため、プログラムは無期限に続行されます。

では、http サーバーの例でループ (アクティブ ハンドルと参照ハンドル) を維持しているのは何ですか?

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

libuv - マルチスレッド環境で uv_accept を使用するには?

の両方のパラメーター (サーバーとハンドル) がuv_accept同じで必要であることがわかりましたuv_loop。しかし、独自のサブスレッドで新しい接続ハンドルを作成したいと考えていますuv_loop。私は何をすべきか?

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

python - Feedparser - TypeError('a float is required',)

複数のフィードを同時に解析するためにguvandを使用しています。feedparser以下は私のコードです:

ただし、次の出力が得られます。

を使用しても同様の問題Eventletがありますが、ネイティブの Python 3threadingライブラリでは発生しません。

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

nginx - nginxのイベントループにイベントを登録することはできますか?

nginxHTTP メッセージを受信し、それを解析してRedis特定のキーの値をチェックインし、応答を返す に基づく Web サーバーが必要ですRedis

出来ますか?nginxのループにイベントを登録することを提案する記事を調べました。

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

node.js - libuv: uv_setup_args 関数とは?

node.js のソース コードを読んでいるときに、これに出くわしました。

libuv docsの関数に関するドキュメントは、まるで存在しないかのように見つかりませんでした。また、node.js コードの他の場所で定義されているかどうかも確認しました。そうではありません。

誰かが私にそれが何をするのか教えてもらえますか? また、ドキュメントが存在する場合は、そのドキュメントを教えていただけますか?

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

c - 必須パラメーターなしの C 関数呼び出し

私は、libuv というライブラリの開発者によって提供されたこのソース コードを見てきました。一部のサンプル コードでは、関数を別の関数のパラメーターとして渡しますが、必要なパラメーターはどれも渡されません。パラメータはどのように入力されていますか? 私が見ている関数は uv_fs_open です。

ソースへのリンクは次のとおりです (関数コードについては、1000 行目あたりを参照してください): https://github.com/libuv/libuv/blob/202195c2f45ced200ccf880ff4502eee94f11ab5/src/unix/fs.c
サンプル コードは次のとおりです。

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

c++ - uv_loop_t.time は何を表していますか?

libuv の uv_loop_t には、「time」と呼ばれるプライベートな uint64 フィールドがあります。

それは何を表していますか?