Skip to content

Problem about uv_async_t coalesces calls #1478

@XadillaX

Description

@XadillaX
  • Version: 1.13
  • Platform: Darwin zanarpro 16.6.0 Darwin Kernel Version 16.6.0: Fri Apr 14 16:21:16 PDT 2017; root:xnu-3789.60.24~6/RELEASE_X86_64 x86_64 i386 MacBookPro11,3 Darwin

I saw a hint in the document:

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.

How about uv_async_send() two different handles? Will this function swallow one of the callback function?

eg:

uv_async_send(async_1);
uv_async_send(async_2);

One of the problem is Node.js cares_wrap.cc (https://github.com/nodejs/node/blob/v8.3.0/src/cares_wrap.cc#L681):

dns.resolve4(..., function() {});
dns.resolve4(..., function() {});

Refs: nodejs/node#13050

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions