Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 26 Jun 2006 08:44:07 -0400
From:      John Baldwin <john@baldwin.cx>
To:        freebsd-arch@freebsd.org
Subject:   Re: What's up with our stdout?
Message-ID:  <200606260844.07341.john@baldwin.cx>
In-Reply-To: <20060626040754.GA30475@duncan.reilly.home>
References:  <20060625011746.GC81052@duncan.reilly.home> <20060625214021.GJ82074@funkthat.com> <20060626040754.GA30475@duncan.reilly.home>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 26 June 2006 00:07, Andrew Reilly wrote:
> On Sun, Jun 25, 2006 at 02:40:21PM -0700, John-Mark Gurney wrote:
> > Andrew Reilly wrote this message on Sun, Jun 25, 2006 at 11:17 +1000:
> > > One interesting problem that I found yesterday was that NetBSD
> > > have added a "-l" option to cat, which is supposed to apply an
> > > exclusive advisory lock with fcntl to the the output file, and
> > > wait until that succeeds:
> > > http://netbsd.gw.com/cgi-bin/man-cgi?cat++NetBSD-current
> > > That seems like a pretty useful idea,
> > > because it means that you can have parallel make jobs all
> > > contributing to a log file or the like (with cat -l >> foo.log),
> > > without getting in eachothers' way.
> > 
> > Why not use:
> > lockf -k foo.log cat >> foo.log
> > 
> > Should do the same thing...
> 
> Not only should it, I've just checked and discovered that it
> does.  So I'll make up the appropriate tweak to NetBSD's
> Makefiles, and suggest on the mailing lists that they think
> about incorporating it, as it's ostensibly a more general and
> useful way to do it.
> 
> This does make me wonder, though, why this _does_ work, given
> Bruce's explanation of why the nbcat code doesn't...
> 
> Hmm.  lockf.c uses open(...,|O_EXLOCK), rather than fcntl().
> Any particular reason why that should behave differently? 

I believe that's an 'flock()' rather than an 'fnctl()' range lock.

Are you doing your build over NFS btw?

-- 
John Baldwin



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