manual/llio.texi: Comment on write atomicity.
authorCarlos O'Donell <carlos@redhat.com>
Thu, 6 Nov 2014 20:58:52 +0000 (15:58 -0500)
committerCarlos O'Donell <carlos@redhat.com>
Thu, 6 Nov 2014 20:58:52 +0000 (15:58 -0500)
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.

ChangeLog
manual/llio.texi

index 3d7cf67c2f04cecbc602867620a60ea3ac0a4a33..6f3a85f1232a82ba79a825b9f6eafe164a4272f6 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 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.
        (localplt-build-dso): Add elf/ld.so.
        * sysdeps/unix/sysv/linux/i386/localplt.data: Add ___tls_get_addr
index 393ddf30ab1dc489b064467c4e3e16d2e5b7a3dd..4f3fada1e7e242a7f4261fa2f9c84b4ad452e914 100644 (file)
@@ -491,6 +491,11 @@ When the source file is compiled with @code{_FILE_OFFSET_BITS == 64} on a
 @c
 @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
+@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
 @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