2017-05-15 15 views
0

"uv_closeはスレッドセーフではありません"と述べました。私はマルチスレッドのC/C++コードを書く経験がありますが、ここで何が言われているのかまだ分かりません。libuv:uv_closeとスレッドの安全性

  • これは、メインスレッドで常にuv_closeを呼び出さなければならないということですか?

  • または、これは単にuv_closeをハンドルの他の用途と並行して呼び出さないでください(明らかです)。

それが関連性の場合、私はここに...、uv_async_tハンドルとの議論パー

+0

あなたはその声明を見ましたか? [docs](http://docs.libuv.org/en/v1.x/handle.html?highlight=uv_close#c.uv_close)に基づいて、安全であると思う音を閉じるハンドルを_requests_します。あなたが 'uv_async_t'を初期化し、ワーカースレッドで' uv_async_send'を呼び出すシナリオがありますが、 'uv_close'はlibuvスレッドの非同期コールバックにあります – pergy

+0

たとえば、https://github.com/libuv/libuv/issues/709 ...ここで私の質問は答えられるようです:ループスレッド外で呼び出されないかもしれません。 – logidelic

+0

良い、良い発見! – pergy

答えて

0

を扱っています:

https://github.com/libuv/libuv/issues/709

uv_closeの外に呼び出されないことがありループスレッド。また、は、uv_async_sendを除いて、ループスレッドの外部で呼び出すことが安全であることを言及する必要がありますlibuv関数です。

関連する問題