xz: Use pipe2() if available.

This commit is contained in:
Lasse Collin 2015-02-22 19:38:48 +02:00
parent 117d962685
commit 7a11c4a8e5
2 changed files with 10 additions and 3 deletions

View File

@ -626,8 +626,8 @@ gl_GETOPT
# Find the best function to set timestamps.
AC_CHECK_FUNCS([futimens futimes futimesat utimes utime], [break])
# This is nice to have but not mandatory.
AC_CHECK_FUNCS([posix_fadvise])
# These are nice to have but not mandatory.
AC_CHECK_FUNCS([posix_fadvise pipe2])
TUKLIB_PROGNAME
TUKLIB_INTEGER

View File

@ -82,7 +82,13 @@ io_init(void)
// we are root.
warn_fchown = geteuid() == 0;
// Create a pipe for the self-pipe trick.
// Create a pipe for the self-pipe trick. If pipe2() is available,
// we can avoid the fcntl() calls.
# ifdef HAVE_PIPE2
if (pipe2(user_abort_pipe, O_NONBLOCK))
message_fatal(_("Error creating a pipe: %s"),
strerror(errno));
# else
if (pipe(user_abort_pipe))
message_fatal(_("Error creating a pipe: %s"),
strerror(errno));
@ -95,6 +101,7 @@ io_init(void)
message_fatal(_("Error creating a pipe: %s"),
strerror(errno));
}
# endif
#endif
#ifdef __DJGPP__