問題タブ [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 に答える
2509 参照

c - libuv:エラー時にアプリケーションを正常に終了する方法は?

libuv ライブラリを使用するアプリケーションがあります。デフォルトのループを実行します:

障害が発生した場合にアプリケーションを正常に終了するにはどうすればよいですか? 現在、次の例のようにしています。

uv_loop_delete関数を呼び出す必要がありますか? それは何をするためのものか?保留中のコールバック関数はすべて削除されますか? 現在開いているすべての TCP 接続を閉じますか? 終了する前に手動で行う必要がありますか?

PS: タグ「libuv」を追加できません (評判が 1500 未満)。誰かがそれを作成して追加できますか?

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

c++ - ソケットオブジェクトからfdまたはhandleを取得します

現在のプロセスとはまったく関係のない別のノードプロセスにソケットを送信できるnode.jsのネイティブ(c ++)モジュールを作成したいと思います。そのために、このための非常に簡単なAPIを備えた補助ライブラリを使用することを考えました。私が今解決しなければならない問題は、node.jsのソケットオブジェクトのfdまたはハンドルを取得する方法です。

tcp_wrap.cc&にはTCPWrapクラスがありtcp_wrap.h、これにはlibuvからのオブジェクトhandle_を保持する、uv_tcp_tというプロパティがありますが、そのプロパティはプライベートです。また、これはnode.jsのモジュールであり、node.js自体に直接含まれていないため、#includeすることはできません。そのクラスを取得するためだけにソースファイルをモジュールにコピーするのが良い考えかどうかはわかりません...

私がそれをどのように行うことができるかについて何か考えがありますか?

私はウィノウで走る必要はありません、タフです。

ありがとう!

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

c++ - 難しい node.js + libuv + v8 エラー

node.js C++ アドオンでuv_queue_workを使用していくつかの並列作業を行っています。

Complete メソッドからJS にコールバックしようとするまで、すべて正常に動作します。

私は得る: CHECK(thread_local_top()->TryCatchHandler() == that) 失敗しました。

これを引き起こしている可能性のあるものについての指針はありますか?

次のコードを使用してコールバックしています。

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

c++ - libuvはBoost/ASIOとどのように比較されますか?

私は次のような側面に興味があります:

  • スコープ/機能
  • パフォーマンス
  • 成熟
0 投票する
1 に答える
798 参照

c++ - 別のスレッドからメイン v8 ループで関数を呼び出す方法

ニューラルネットワークを含むnodejs用のオーディオモジュールを実装しようとしています。

このニューラル ネットワークには 2 種類のノードがあります

  1. 純粋な C++
  2. JAVASCRIPT に基づく C++ (javascript 関数の呼び出しを含む)

私の知る限り、別のスレッドから v8 を含む関数を呼び出すことはできません。メイン スレッドに戻ると、ニューラル ネットワークでトラバースが失われます。

別のスレッドからメインスレッドで関数への呼び出しを実装する方法は?

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

node.js - node-gyp を使用してノード バージョンに基づいて node.js のネイティブ コードを条件付きでコンパイルするにはどうすればよいですか?

ノード 0.8 とその拡張 libuv 用に作成された node.js モジュール用の C++ コードがいくつかあります。具体的には、ノード 0.6 に含まれる libuv には存在しない uv_mutex_* 関数を使用しています。これらの関数に相当する pthreads を条件付きで埋め込みたいのですが、古いバージョンでビルドした場合のみです。

これにより、ノード 0.8 でビルドした場合はクロスプラットフォーム ビルド (Windows と Linux) が得られ、ノード バージョンが 0.6 の場合は機能する Linux バージョンが得られます。

ノード バージョンのプリプロセッサ #define はありますか? 見つからない。私が思いつくことができる最善の方法は、 <@(node_root) に基づいてバージョンを推測し、何らかの形でそれを「定義」値にマッサージするために、binding.gyp でいくつかの厄介なことを行うことです。もっと良い方法があるはずです!

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

c++ - クラス内で libuv を使用する

C++ ライブラリの nodejs バインディングを作成しようとしていますが、障害にぶつかったようです。

私は C++ ライブラリへのすべての呼び出しを非同期にしようと取り組んでおり、それが私が使用している理由ですlibuv。私は基本的にこのチュートリアルに従っています。

libuv からクラスメンバー関数を呼び出せるようにしたいuv_queue_work。このコードを見てください -

Work基本的に、関数と関数がクラスの要素でAfter機能することを期待しています。dataただし、これは機能しないようです。typeからへのポインタWorkAfterその後のポインタを型キャストしてみました。しかし、それもうまくいかないようです。void test::(*)(uv_work_t*)void (*)(uv_work_t*)

これを回避する方法についてのヒントを教えていただけますか??

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

c++ - node.js 内部: `process.binding('eval')` が定義されている場所を見つけるにはどうすればよいですか?

  • node.js の C++ ソース コードのどこで、JavaScript オブジェクトが定義されているかを調べるにはどうすればよいprocess.binding('eval')ですか? - この特殊なケースに含まれていることは既にわかっていますが、ディレクトリの概要を確認しただけで、そのモジュールがどこ/src/node_script.ccにあるのかを知るにはどうすればよいですか? モジュールを探すためにすべてのファイルを調べたくありません。/src//src/
  • sの内部に関する深い情報はどこで見つけることができますかprocess.binding()?

ありがとう。

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

javascript - 非同期を使用することが理にかなっている場合のNode.js?

node.jsのコールバックと非同期にすることが理にかなっているのはいつかと自問しています。I / O、データベース、その他すべてのコードをブロックしたり、コードの残りの部分で作業したりするときに便利ですか?

たとえば、ボードゲームの「レイアウト」を入手しました。指定されたjsonレイアウトでボードインスタンスを作成します。I / O(jsonレイアウトファイルの読み取り)に非同期を使用するのは理にかなっていると理解しています。これはブロックされるためです。たとえば、foreachループではどうでしょうか。非同期にする必要がありますか?基礎となるlibuvは、これから何らかの形で利益を得ていますか?

非同期libを使用したバージョンは次のとおりです。

そしてそれは非同期リンクのないバージョンです

御時間ありがとうございます!

ご挨拶、マーカス

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

c++ - qtで非同期ファイルioを実行するにはどうすればよいですか?

qtで非同期ファイルioを実現する方法を考えていましたか?これはバニラqtでも達成可能ですか、それとも誰かがこのようなことを達成するために別のライブラリ(たとえばlibuv)を使用する必要がありますか?私はQDataStreamを見ていましたが、それは「ストリーム」ですが、ノンブロッキングではありません。1つの解決策は、内部でlibuvを使用するカスタムQIODeviceを作成することだと思います。これは、QDataStreamで使用できますが、どこから始めればよいかわかりません。何か案は?

提供された助けに感謝します。