Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 May 2000 17:51:22 -0400
From:      Sergey Babkin <babkin@bellatlantic.net>
To:        Alfred Perlstein <bright@wintelcom.net>
Cc:        Ville-Pertti Keinonen <will@iki.fi>, FengYue <fengyue@bluerose.windmoon.nu>, hackers@FreeBSD.ORG
Subject:   Re: Why this works?
Message-ID:  <391C7CDA.F9B477B7@bellatlantic.net>
References:  <20000511210915.A38341@Hamilton-ppp44812.sympatico.ca> <Pine.BSF.4.10.10005111955220.29094-100000@bluerose.windmoon.nu> <864s84cq35.fsf@not.demophon.com> <20000512005806.A29302@fw.wintelcom.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Alfred Perlstein wrote:
> 
> * Ville-Pertti Keinonen <will@iki.fi> [000511 22:49] wrote:
> >
> > fengyue@bluerose.windmoon.nu (FengYue) writes:
> >
> > > loop.  Now, the third program reads 4K of data from /tmp/pagetest
> > > and exit if the 4K data does not contain all 'A's nor 'Z's.  3 programs
> > > run concurrently on the same machine (3.4).  No lock in the code whatsoever,
> >
> > Not quite.  If FreeBSD didn't perform locking, operations affecting
> > single filesystem blocks would probably be atomic (as long as the
> > userland buffer is in memory).
> >
> > However, FreeBSD does perform locking in read(2) and write(2) for
> > local files, so your third program should never fail and exit.
> >
> > Note that the system call interface does not guarantee reads or writes
> > to be atomic, this just happens to be how it is implemented at the
> > moment.
> 
> Afaik several Unix standards mandate this behavior, Linux doesn't
> follow this standard though.

Sounds like one more of these subtle weirdnesses in Linux that
annoy me so much :-(

Solaris seems to be another example a system with not quite atomic
writes. The writes themselves seem to be atomic but in append mode the
positioning at the end of file is not atomic with writes. So when
appending to a log file from multiple sources the messages tend to
overlap (be written at the same position).

-SB


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?391C7CDA.F9B477B7>