diff options
author | Sean Bright <sean.bright@gmail.com> | 2017-04-17 20:06:10 -0400 |
---|---|---|
committer | Sean Bright <sean.bright@gmail.com> | 2017-04-24 12:46:27 -0400 |
commit | cea3742c549a3c31621d2d29a1b78b42211e01d0 (patch) | |
tree | 10d3b39a433741922041fdbe0608d22e1905f1f9 /main/utils.c | |
parent | dac4442cdd787b58035fcd13d51abbf50a4d7cb3 (diff) |
core: Use eventfd for alert pipes on Linux when possible
The primary win of switching to eventfd when possible is that it only
uses a single file descriptor while pipe() will use two. This means for
each bridge channel we're reducing the number of required file
descriptors by 1, and - if you're using timerfd - we also now have 1
less file descriptor per Asterisk channel.
The API is not ideal (passing int arrays), but this is the cleanest
approach I could come up with to maintain API/ABI.
I've also removed what I believe to be an erroneous code block that
checked the non-blocking flag on the pipe ends for each read. If the
file descriptor is 'losing' its non-blocking mode, it is because of a
bug somewhere else in our code.
In my testing I haven't seen any measurable difference in performance.
Change-Id: Iff0fb1573e7f7a187d5211ddc60aa8f3da3edb1d
Diffstat (limited to 'main/utils.c')
-rw-r--r-- | main/utils.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/main/utils.c b/main/utils.c index de7ff8f90..b31db5982 100644 --- a/main/utils.c +++ b/main/utils.c @@ -69,6 +69,9 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") #define AST_API_MODULE #include "asterisk/config.h" +#define AST_API_MODULE +#include "asterisk/alertpipe.h" + static char base64[64]; static char b2a[256]; |