I have a c++ lib, client application use this lib to query data from server. This lib create a seperate thread to communicate with server, query result will be passed as parameters in callback function.

Now i want to wrap this c++ lib to nodejs native module, since callback functions are called in this lib's own thread, in order to pass query result to js environment, i believe i have to use libuv's uv\_async\_send(uv\_async\_t\* async) method to pass data between two thread.(correct me if I'm wrong)

According to [libuv's doc](http://docs.libuv.org/en/v1.x/async.html?highlight=uv_async_send#c.uv_async_send):

> 
> Warning: libuv will coalesce calls to uv\_async\_send(), that is, not every call to it will yield an execution of the callback. For example: if uv\_async\_send() is called 5 times in a row before the callback is called, the callback will only be called once. If uv\_async\_send() is called again after the callback was called, it will be called again.
> 
> 
> 

Does this warning means uv\_async\_send may cause data lost? I want to know whether the libuv offer a better solution for this problem or should I use some other thead librarys.