manual/llio.texi: Comment on write atomicity.

We add Linux-realted comments about the atomicity of
write with respect to file offsets. As of Linux 3.14
the file offset update is atomic. That means that
multiple threads calling the write syscall can not possibly
get the same file offset. Therefore the writes should
not overlap and data should not be lost as is required
by POSIX.
This commit is contained in:
Carlos O'Donell 2014-11-06 15:58:52 -05:00
parent da53d6dbc2
commit a2887bdb27
2 changed files with 8 additions and 0 deletions

View File

@ -1,5 +1,8 @@
2014-11-06 Carlos O'Donell <carlos@redhat.com> 2014-11-06 Carlos O'Donell <carlos@redhat.com>
* manual/llio.texi: Add comment that write safety has been
fixed in Linux.
* elf/Makefile (all-built-dso): Add $(common-objpfx)elf/ld.so. * elf/Makefile (all-built-dso): Add $(common-objpfx)elf/ld.so.
(localplt-build-dso): Add elf/ld.so. (localplt-build-dso): Add elf/ld.so.
* sysdeps/unix/sysv/linux/i386/localplt.data: Add ___tls_get_addr * sysdeps/unix/sysv/linux/i386/localplt.data: Add ___tls_get_addr

View File

@ -491,6 +491,11 @@ When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} on a
@c @c
@c So we mark it thread safe, it doesn't blow up, but you might loose @c So we mark it thread safe, it doesn't blow up, but you might loose
@c data, and we don't strictly meet the POSIX requirements. @c data, and we don't strictly meet the POSIX requirements.
@c
@c The fix for file offsets racing was merged in 3.14, the commits were:
@c 9c225f2655e36a470c4f58dbbc99244c5fc7f2d4, and
@c d7a15f8d0777955986a2ab00ab181795cab14b01. Therefore after Linux 3.14 you
@c should get mostly MT-safe writes.
The @code{write} function writes up to @var{size} bytes from The @code{write} function writes up to @var{size} bytes from
@var{buffer} to the file with descriptor @var{filedes}. The data in @var{buffer} to the file with descriptor @var{filedes}. The data in
@var{buffer} is not necessarily a character string and a null character is @var{buffer} is not necessarily a character string and a null character is