1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-30 11:03:19 +03:00

Provide pg_preadv() and pg_pwritev().

Provide synchronous vectored file I/O routines.  These map to preadv()
and pwritev(), with fallback implementations for systems that don't have
them.  Also provide a wrapper pg_pwritev_with_retry() that automatically
retries on short writes.

Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Reviewed-by: Andres Freund <andres@anarazel.de>
Discussion: https://postgr.es/m/CA%2BhUKGJA%2Bu-220VONeoREBXJ9P3S94Y7J%2BkqCnTYmahvZJwM%3Dg%40mail.gmail.com
This commit is contained in:
Thomas Munro
2021-01-11 14:37:13 +13:00
parent 01334c92fa
commit 13a021f3e8
9 changed files with 238 additions and 34 deletions

View File

@ -1331,6 +1331,7 @@ AC_CHECK_HEADERS(m4_normalize([
sys/shm.h
sys/sockio.h
sys/tas.h
sys/uio.h
sys/un.h
termios.h
ucred.h
@ -1660,9 +1661,14 @@ AC_CHECK_FUNCS(m4_normalize([
poll
posix_fallocate
ppoll
pread
preadv
pstat
pthread_is_threaded_np
pwrite
pwritev
readlink
readv
setproctitle
setproctitle_fast
setsid
@ -1673,6 +1679,7 @@ AC_CHECK_FUNCS(m4_normalize([
sync_file_range
uselocale
wcstombs_l
writev
]))
# These typically are compiler builtins, for which AC_CHECK_FUNCS fails.
@ -1733,8 +1740,6 @@ AC_REPLACE_FUNCS(m4_normalize([
inet_aton
link
mkdtemp
pread
pwrite
random
srandom
strlcat