Как использовать libuv Async потокобезопасных?
uv_async_send является потокобезопасным, но uv_async_init не является потокобезопасным. Если uv_async_init и ящик aysnc обрабатывают в потоке циклов, возможно, я вызову uv_async_send много раз, но обратный вызов будет вызван только один раз (мне нужно, чтобы обратный вызов вызывался в те же моменты, когда я вызываю uv_async_send).
но это не безопасно, когда я создаю асинхронный дескриптор для каждого обратного вызова в другом потоке. Итак, как использовать libuv потокобезопасных?
http://docs.libuv.org/en/v1.x/async.html?highlight=uv_async_init
uv_async_init не является потокобезопасным… это не безопасно, когда я создаю асинхронный дескриптор для каждого обратного вызова в другом потоке… я могу создать асинхронный дескриптор в потоке цикла
Похоже, вы неправильно поняли термин "безопасный поток". Это не означает, что вы не можете вызывать uv_async_init()
из потока, отличного от потока цикла. Это просто означает, что вы не можете вызывать его из нескольких потоков параллельно (без блокировки).
возможно я могу создать асинхронный дескриптор в потоке цикла, но запустить очередь обратного вызова, созданную мной.