09.02.2011 17:39, casper....@oracle.com wrote:
No, that will work fine since the file offset is ignored in O_APPEND mode
and writes are serialized by lower-level (file system) mechanisms.
(Note that I used O_APPEND for the output file in my test program.)
I would appreciate it if some people out there would run this test
on other systems (Red Hat Linux, NETBSD, Apple OS X, HP-UX, IRIX)
and post the results.
I tried to run the test on the following systems:
2.6.32-27-generic-pae #49-Ubuntu SMP
2.6.18-194.el5 #1 SMP (Red Hat)
2.6.16.60-0.21-smp #1 SMP (SUSE)
It failed on all of them.
Thanks,
Dmitry
Thanks for running the test,
I'm not really surprised, when multiple threads read from the same
fd, are we supposed to serialize all the reads to make sure that you can't
have concurrent reads starting at the same offset? I don't think that
POSIX prevents that.
Roger quoted POSIX spec about atomicity of file operations. One of the
effects of read operation is incremented file offset and "each call
shall either see all of the specified effects of the other call, or none
of them".
How does it fail on the Linux kernels? On Solaris,
the output file is somewhat larger but not much (when using tmpfs)
The same is on Linux. Output file is larger.
_______________________________________________
ksh93-integration-discuss mailing list
ksh93-integration-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/ksh93-integration-discuss