Date: Wed, 17 May 2006 08:39:44 -0500 From: Wesley Shields <wxs@atarininja.org> To: Edwin Groothuis <edwin@mavetju.org>, Vasil Dimov <vd@freebsd.org>, ports@freebsd.org, Paul Koch <paul.koch@statseeker.com> Subject: Re: Is it safe to compile multiple ports at the same time ? Message-ID: <20060517133944.GA39615@atarininja.org> In-Reply-To: <20060517121337.GA50791@iib.unsam.edu.ar> References: <200605171353.37745.paul.koch@statseeker.com> <20060517045403.GI1113@k7.mavetju> <200605171508.07228.paul.koch@statseeker.com> <20060517060026.GA40653@qlovarnika.bg.datamax> <20060517061302.GR1116@k7.mavetju> <20060517121337.GA50791@iib.unsam.edu.ar>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, May 17, 2006 at 09:13:37AM -0300, Fernan Aguero wrote: > +----[ Edwin Groothuis <edwin@mavetju.org> (17.May.2006 03:16): > | > | 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 > | > | > +----] > > Why not > > - check if pkg-config exists and only if it doesn't exist, > try to obtain lock on the lock target. Because at that point aren't you in a race condition? Port A finds out pkg-config doesn't exist. Port B finds out pkg-config doesn't exist. At this point both ports determine they need to build and install the port. Port B manages to obtain the lock first, and builds and installs pkgconfig. Port A waits on Port B to finish. Upon finishing Port A obtains the lock and builds and attempts to install an already installed port. You must obtain the lock early on, like Edwin has stated. -- WXS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060517133944.GA39615>