asio icon indicating copy to clipboard operation
asio copied to clipboard

Upstream QNX patch to ASIO library

Open VladCimpianu opened this issue 2 years ago • 2 comments

The current ASIO socket implementation on QNX uses two different processes for communication. The io_pkt (or in newer version io_sock) and the pipe daemon. Involving additional daemons in basic communication paths is always less than optional with respect to latency and CPU load. While io_pkt implements the real socket functionality, the pipe daemon is only used to implement the file descriptor select functionality. ASIOs default select_reactor implementation on QNX uses the pipe_select_interrupter, which performs the interactions with the pipe daemon. The proposed patch (initially implemented by Blackberry) implements its own ionotify_reactor, which builds on top of the ionotify() system call and asynchronous QNX pulse communication. As a result, the interaction with the additional pipe daemon is not needed anymore.

The purposed patch: qnx-asio-upstream.patch

VladCimpianu avatar Oct 04 '23 11:10 VladCimpianu

I tested the patch on QNX-700 and QNX-710 with BOOST 1.81.0 On QNX-710 the patch worked well.

On QNX-700 compiled failed.

ionotify_reactor.ipp: error: '_NTO_COF_REG_EVENTS' was not declared
ionotify_reactor.ipp: error: 'MsgRegisterEvent' was not declared

jiazhanfeng1989 avatar Jan 18 '24 08:01 jiazhanfeng1989

Hello!

Sorry to bother like this, but somehow do you have any contact from any responsible of Reviews and Merges into this repo? like: @chriskohlhoff @klemens-morgenstern @vinipsmaker @MarcelRaad I tried to find any way to contact them but can't find anything. I made a PR 3 months ago and still didn't get any review.

Thank you!

VladCimpianu avatar Feb 21 '24 11:02 VladCimpianu