問題タブ [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.
libuv - libuv をビルドできません
Debian マシンで libuv 0.11.24 をビルドしようとしています。私は試した:
次のエラーが表示されます。
sockets - HTTP キープアライブ接続でデータが到着したことをどのように確認できますか?
libuv を使用して単純な Web サーバーを実装しています。現在、キープアライブ接続に固執しています。
キープアライブに関する私の理解に基づいてuv_close()
、リクエストが処理された後に確立された接続(TCPソケット)を呼び出さず、後で再利用します。
その接続で新しいリクエストが到着したことをどのように伝えることができるのでしょうか? つまり、いつuv_read_start()
その有効な接続を呼び出せばよいのでしょうか?
javascript - Nodejs プロセスがブロックしている FUSE ファイルからの読み取りをロックアップする
ファイルを読み取ってコンテンツを提供するnodejs Webサーバーがあります。一部のファイルは FUSE 仮想ファイルであり、バッキング サービスがデータの提供を待機している間、長時間読み取りをブロックする可能性があります。
これらの読み取り要求が 5 つ溜まると、プロセスはどのファイルからも読み取れなくなるようです。また、必要に応じてこれらの保留中の読み取りを終了する方法がわかりません。
これは nodejs の制限ですか、それとも FUSE ファイルシステムが FUSE の期待と矛盾する方法で動作していますか?
c - libuv イベントループと libcurl
libcurlでlibuvを使用する方法の例からのサンプルコードを以下に示します
メイン関数は次のようになります。
イベントループを開始する方法について混乱しています。この行を実行すると
ループには保留中のイベントがまったくないので、理論的にはループはすぐに終了するべきではありませんか?
コールバック handle_socket を実行するための変更は必要ありません。curl_perform()
curl ソケット コールバックのコールバックで設定された が実行される可能性はありません。
私の理解に何か問題がありますか?
javascript - ファイル記述子を指定してnodejs Duplexストリームを開くにはどうすればよいですか?
既存のプログラムをnodejsに移植しています。このプログラムでは、ファイル ディスクリプタを開き、そのファイル ディスクリプタを呼び出すスレッドに渡して、poll
いつ読み取り可能かを判断します。
カスタム C++ モジュールを作成する代わりに、Node の便利でダンディなDuplex streamを利用して純粋な JavaScript でこれを行いたいと思います。
たとえば、次のようなことをしたいと思います。
これは存在するはずですが、どこにあるのかわかりません。もしかして私は盲目なだけ?PollDuplexStream
上記の例に相当する現実世界は何ですか?
パスではなくファイル記述子で始まるソリューションを明示的に探していることに注意してください。それ以外の場合は、fs.createReadStream
とから独自に作成しますfs.createWriteStream
。
また、内部で呼び出すことも気にしませんpoll
。実際、内部で libuv を使用することをお勧めしuv_poll_*
ます。
libuv - libuv は POSIX システム上の libev の単なるラッパーですか?
私はlibevとlibuvの間で本当に混乱しています。
libuv は POSIX システム上の libev の単なるラッパーですか?
そうでない場合、どこが違うのですか?
c - libUV ハンドルを正しく閉じる
このプログラムを Valgrind で実行しているときに発生するこれらのメモリ リークを修正する方法を見つけようとしています。の 2 つの割り当てでリークが発生しnShell_client_main
ます。しかし、それらを適切に解放する方法がわかりません。
nShell_Connect でそれらを解放しようとしましたが、libUV がプログラムを中止させています。の最後でそれらを解放しようとしましたnShell_client_main
が、ループを閉じるときに読み取り/書き込みエラーが発生します。これらのハンドルを閉じる方法を知っている人はいますか? 私はこれを読んで、始めました。uv_ip4_addr
ただし、最新バージョンではプロトタイプが異なるため、時代遅れのようです。
(nShell_main
「エントリー」ポイントです)
アサーションは、このコードの抜粋 (Github の Joyent の libUV ページから取得) の switch ステートメントの最後で発生しています。
手動で呼び出すことはできますuv__tcp_close
が、それはパブリック ヘッダーにはありません (とにかく正しい解決策ではない可能性があります)。
qt - qtのlibuvイベントループ
複数のスレッドを使用しない方法はありますか?
これを見つけましたhttps://stackoverflow.com/a/17329626/4014896
しかし、私はそれがどのように機能するかわかりません。この例では、CPU 使用率が 100% になるべきではありませんか? QTなどに埋め込むにはどうすればよいですか?
これもあります: https://github.com/svalaskevicius/qt-event-dispatcher-libuv しかし、ドキュメントはまったくありません。しかし、私の見た目からは、例の QSocket から uv_tcp_socket に変換するもののように見えますが、これは私が探しているものではありません。
c++11 - LibSourcey での経験
libuv をグーグルで調べているときにlibsourceyに出くわしました。非常に機能が豊富に見えますが、確固たるレビューやベンチマークを見つけることができませんでした (実際、これは LibSourcey に関するスタック オーバーフローに関する最初の投稿のようです)。
このフレームワークをまだ経験したことがない人はいますか?
node.js - libuv と Node.js は実際にどのようにタイマーをスケジュールしますか?
libuv とオペレーティング システムは、Node.js で setTimeout や setInterval などのタイマーを実際にどのようにスケジュールしますか? タイマーが起動するまで、ノード プロセスによって CPU が使用されていないことがわかります。これは、OS がタイマーをスケジュールし、タイマーが起動したときに Node プロセスを起動するということですか? もしそうなら、OSはどのようにタイマーをスケジュールし、ハードウェアはそれをどのように正確に実行しますか?