From owner-freebsd-hackers@FreeBSD.ORG Sun Feb 5 19:29:50 2012 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 49DAB1065677; Sun, 5 Feb 2012 19:29:50 +0000 (UTC) (envelope-from deischen@freebsd.org) Received: from mail.netplex.net (mail.netplex.net [204.213.176.10]) by mx1.freebsd.org (Postfix) with ESMTP id D67A48FC18; Sun, 5 Feb 2012 19:29:49 +0000 (UTC) Received: from sea.ntplx.net (sea.ntplx.net [204.213.176.11]) by mail.netplex.net (8.14.4/8.14.4/NETPLEX) with ESMTP id q15JThjX036757; Sun, 5 Feb 2012 14:29:43 -0500 X-Virus-Scanned: by AMaViS and Clam AntiVirus (mail.netplex.net) X-Greylist: Message whitelisted by DRAC access database, not delayed by milter-greylist-4.2.6 (mail.netplex.net [204.213.176.10]); Sun, 05 Feb 2012 14:29:44 -0500 (EST) Date: Sun, 5 Feb 2012 14:29:43 -0500 (EST) From: Daniel Eischen X-X-Sender: eischen@sea.ntplx.net To: Jilles Tjoelker In-Reply-To: <20120205190022.GC57421@stack.nl> Message-ID: References: <201201110806.30620.jhb@freebsd.org> <5D37298B-9D68-4F0F-8AAB-E8F2DBB9D9C3@transactionware.com> <20120205190022.GC57421@stack.nl> MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="-559023410-851401618-1328470183=:28760" Cc: Garrett Cooper , freebsd-hackers@freebsd.org, Ivan Voras , Xin LI , Jan Mikkelsen , davidxu@freebsd.org Subject: Re: sem(4) lockup in python? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Daniel Eischen List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 05 Feb 2012 19:29:50 -0000 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. ---559023410-851401618-1328470183=:28760 Content-Type: TEXT/PLAIN; charset=iso-8859-1; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE On Sun, 5 Feb 2012, Jilles Tjoelker wrote: > On Sun, Feb 05, 2012 at 01:32:42PM -0500, Daniel Eischen wrote: >> On Sun, 5 Feb 2012, Ivan Voras wrote: >>> On 5 February 2012 11:44, Garrett Cooper wrote: > >>>> =A0 =A0'make MAKE_JOBS_NUMBER=3D1' is the workground used right now.. > >>> David Xu suggested that it is a bug in Python - it doesn't set >>> process-shared attribute when it calls sem_init(), but i've tried >>> patching it (replacing the port patchfile file the one I've attached) >>> and I still get the hang. > >> I don't understand how process shared semaphores can work. Perhaps >> I'm dumb and ignorant, but a sem_id_t is an allocated struct. The >> actual kernel sem_id is inside the struct. Isn't this the same >> reason pthread_mutex_t and pthread_cond_t cannot be process-shared? > > That's how the old implementation works. It does not support > process-shared semaphores although they may happen to work in some > specific cases. > > However, in 9.0, sem_t works differently and contains the actual lock > word directly, so that process-shared semaphores work. The > implementation is in lib/libc/gen/sem_new.c. The pshared flag to > sem_init() is not a no-op because it tells the kernel to allow for use > from multiple processes. > > Note that the old implementation is still present as well, for > compatibility with old binaries. Ahh, okay, I was looking at the old implementation in libc. --=20 DE ---559023410-851401618-1328470183=:28760--