utils: Wrap socket() and pipe() to reduce syscalls
authorSean Bright <sean.bright@gmail.com>
Fri, 7 Dec 2018 12:57:48 +0000 (07:57 -0500)
committerSean Bright <sean.bright@gmail.com>
Fri, 7 Dec 2018 14:06:08 +0000 (09:06 -0500)
commit6d69fb3cc299ba11b226de9877f82e4941d775b7
tree2f3aa350260840ea8fde2693efc1b3f1c887b332
parentb899119a5dd07185ed95bb5add75259647ca0aed
utils: Wrap socket() and pipe() to reduce syscalls

Some platforms provide an implementation of socket() and pipe2() that allow the
caller to specify that the resulting file descriptors should be non-blocking.

Using these allows us to potentially elide 3 calls into 1 by avoiding extraneous
calls to fcntl() to set the O_NONBLOCK flag afterwards.

In passing, change ast_alertpipe_init() to use pipe2() directly instead of the
wrapper if it is available.

Change-Id: I3ebe654fb549587537161506c6c950f4ab298bb0
configure
configure.ac
include/asterisk/autoconfig.h.in
include/asterisk/utils.h
main/alertpipe.c
main/utils.c