Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 17 May 2006 16:13:02 +1000
From:      Edwin Groothuis <edwin@mavetju.org>
To:        Vasil Dimov <vd@FreeBSD.org>
Cc:        ports@freebsd.org, Paul Koch <paul.koch@statseeker.com>
Subject:   Re: Is it safe to compile multiple ports at the same time ?
Message-ID:  <20060517061302.GR1116@k7.mavetju>
In-Reply-To: <20060517060026.GA40653@qlovarnika.bg.datamax>
References:  <200605171353.37745.paul.koch@statseeker.com> <20060517045403.GI1113@k7.mavetju> <200605171508.07228.paul.koch@statseeker.com> <20060517060026.GA40653@qlovarnika.bg.datamax>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, May 17, 2006 at 09:00:26AM +0300, Vasil Dimov wrote:
> Not really, locking will just prevent breakages. Let me illustrate my
> thought with an example:
> 
> port A depends on X
> port B depends on X
> 
> You start building A which results in building X via exclusive lock on X.
> During the build of X you decide to build B which results in building X
> (X is not yet installed) but you block trying to acquire the exclusive
> lock on X so you wait _idling_ until building of X is done. Furthermore
> what do you suggest to do when the lock is released?

You have to obtain a lock on the X's Makefile before you are doing
to check if you have this port installed.

For example, a dependcy on pkg-config in the directory devel/pkgconfig:

- obtain lock on devel/pkgconfig/Makefile
- check if pkg-config exists, and if not, build and install it.
- release lock on devel/pkgconfig/Makefile


> Ofcourse if B depends also on Y it can fallback to building Y if it
> cannot gain exclusive lock on X.

Building one port is a serial process, building multiple ports can
be a parallel process.

Edwin

-- 
Edwin Groothuis      |            Personal website: http://www.mavetju.org
edwin@mavetju.org    |          Weblog: http://weblog.barnet.com.au/edwin/



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