Boost logo

Boost :

From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2005-12-12 06:40:46

On 12/12/05, Christopher Kohlhoff <chris_at_[hidden]> wrote:
> Hi Oliver,
> --- Oliver.Kowalke_at_[hidden] wrote:
> > what about multicast and raw sockets (ICMP, IGMP, ...)?
> Multicast support is there - see the example in libs/asio/multicast and
> the boost::asio::ipv4::multicast namespace. There's no raw socket
> support at the moment, but I don't see any reason why it can't be
> supported in principle.
> > SIGPIPE is blocked by the ctor of basic_demuxer - I think it
> > would be better to block SIGPIPE only in the functions reading
> > from the socket and after that reset to the original signal
> > handler.
> But that would mean that the SIGPIPE is still delivered to the
> application, wouldn't it? That's not very nice since the default
> behaviour for SIGPIPE is to terminate the application. I chose to
> ignore SIGPIPE globally since most people writing portable applications
> would never want to know about it. If you do feel the need to handle
> SIGPIPE yourself, just specialise boost::asio::detail::signal_init so
> that it isn't ignored.
> > EINTR is not handled in the reading/writing functions?
> The blocking functions will return error::interrupted in this case.
> For asynchronous calls implemented using a reactor (i.e. select,
> kqueue, epoll), all signals are blocked while the operations (read,
> write, etc) are being performed. The signals are unblocked again before
> returning to select (or kqueue or epoll) so that Ctrl-C and friends can
> terminate an application that's calling demuxer::run().
> > Is it correct, that asio doesn't use AIO System Interfaces from
> > the OS (like aiocb, aio_read, aio_write, aio_suspend, ...)?
> At the moment that's true, although an implementation is feasible.
> However these function don't support sockets on Linux yet (AFAIK, it
> may just be that they don't support sockets efficiently) and for
> solaris I'm planning to support /dev/poll first.

It seems that AIO socket support for linux exists, but only with
patches to the kernel.

> Cheers,
> Chris
> _______________________________________________
> Unsubscribe & other changes:

Felipe Magno de Almeida

Boost list run by bdawes at, gregod at, cpdaniel at, john at