delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2013/10/31/22:59:34

X-Recipient: archive-cygwin AT delorie DOT com
DomainKey-Signature: a=rsa-sha1; c=nofws; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; q=dns; s=
default; b=SqbBq3aegodPObFYk+6lC7pNf4yuz0sYl+phIWBT18yiA6cCMv+sh
wGohTWUyR5Qql8hi6yS8NyOo3FIvXhxAC6cDfUhzwPvwQ4b4a7mMPNz/+8rXsOpO
VdCLlCgnLQX+SYKErcAmYyWRetOOJUPOwteJGG80KVNRjsu7nEcRcc=
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=sourceware.org; h=list-id
:list-unsubscribe:list-subscribe:list-archive:list-post
:list-help:sender:date:from:to:subject:message-id:reply-to
:references:mime-version:content-type:in-reply-to; s=default;
bh=PU3t8gDD9L339RZq2HkYUiBx7cs=; b=Bu8Iq9u5DB8RN7R00/31LVgA4dCz
eYKh+LZT/dAJZQD7CjVNdHC1uF1oDkY/7sY/trczJkvegPiS0NL9dqyOL3a9QJ8r
Bcrss5By4lUF1NqG0HbSVgbKbpzu4a1om3feeG3sNBfo/SUCdxolyVLPpu/NrqMe
uvCzUIBFxr6PVJ0=
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Authentication-Results: sourceware.org; auth=none
X-Virus-Found: No
X-Spam-SWARE-Status: No, score=1.4 required=5.0 tests=AWL,BAYES_00,RCVD_IN_DNSWL_NONE,URIBL_BLACK autolearn=no version=3.3.2
X-HELO: mho-01-ewr.mailhop.org
X-Mail-Handler: Dyn Standard SMTP by Dyn
X-Report-Abuse-To: abuse AT dyndns DOT com (see http://www.dyndns.com/services/sendlabs/outbound_abuse.html for abuse reporting information)
X-MHO-User: U2FsdGVkX19XOIyNBBeWWCJmJAoj10of
Date: Thu, 31 Oct 2013 22:59:11 -0400
From: Christopher Faylor <cgf-use-the-mailinglist-please AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: Problem with multiprocessing module from Python
Message-ID: <20131101025911.GA2302@ednor.casa.cgf.cx>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <l4ei86$cos$2 AT ger DOT gmane DOT org> <l4p2uq$ps8$1 AT ger DOT gmane DOT org> <l4p6h3$801$1 AT ger DOT gmane DOT org> <20131029205935 DOT GC392 AT ednor DOT casa DOT cgf DOT cx> <l4p8oi$24u$1 AT ger DOT gmane DOT org> <l4p8vj$24u$3 AT ger DOT gmane DOT org> <20131030093313 DOT GA28558 AT calimero DOT vinschen DOT de> <l4u7er$2vj$1 AT ger DOT gmane DOT org> <20131031184114 DOT GD6599 AT ednor DOT casa DOT cgf DOT cx> <l4uflu$rrm$1 AT ger DOT gmane DOT org>
MIME-Version: 1.0
In-Reply-To: <l4uflu$rrm$1@ger.gmane.org>
User-Agent: Mutt/1.5.20 (2009-06-14)

On Thu, Oct 31, 2013 at 08:47:58PM +0000, Jean-Pierre Flori wrote:
>Le Thu, 31 Oct 2013 14:41:14 -0400, Christopher Faylor a ??crit??:
>
>> On Thu, Oct 31, 2013 at 06:27:39PM +0000, Jean-Pierre Flori wrote:
>>>Le Wed, 30 Oct 2013 10:33:13 +0100, Corinna Vinschen a ??crit??:
>>>
>>>> On Oct 29 21:22, Jean-Pierre Flori wrote:
>>>>> Le Tue, 29 Oct 2013 21:19:14 +0000, Jean-Pierre Flori a ??crit??:
>>>>> 
>>>>> > Le Tue, 29 Oct 2013 16:59:35 -0400, Christopher Faylor a ??crit??:
>>>>> >> If you want this fixed, the easiest way to get that to happen is
>>>>> >> to post a simple test case which reproduces the problem.  That is
>>>>> >> not the code snippet that you sent.  A real working example would
>>>>> >> be required.
>>>>> > Sorry about that.
>>>>> > 
>>>>> > Here you go:
>>>>> > """
>>>>> > from multiprocessing import Pool
>>>>> > 
>>>>> > def f(x): return x
>>>>> > 
>>>>> > p = pool(2)
>>>>> > 
>>>>> > p.map(f, [1, 2])
>>>>> > """
>>>>> And I managed to introduce a typo. The third line should read Pool,
>>>>> so it is:
>>>>> """
>>>>> from multiprocessing import Pool
>>>>> 
>>>>> def f(x): return x
>>>>> 
>>>>> p = Pool(2)
>>>>> 
>>>>> p.map(f, [1, 2])
>>>>> """
>>>> 
>>>> Works for me.  I guess.  At least, if I run the script, nothing
>>>> happens:
>>>> 
>>>>   $ python x.py $
>>>> 
>>>> Same on 32 and 64 bit Cygwin.
>>>> 
>>>> 
>>>> Corinna
>>>
>>>I think I got to the bottom of this.
>>>It seems the new implem of sem_getvalue in cgwin1.dll is the cause, see:
>>>http://cygwin.com/ml/cygwin-patches/2013-q3/msg00006.html It may also
>>>explain the random reproducibility if sval stays uninitialized or
>>>something like that (I did not check it is the case though).
>> 
>> I doubt that was the problem.  More likely it is something related to
>> the changes in thread.cc that followed that change.
>> 
>> cgf
>
>I must admit that was just a guess.
>The thread.cc code changed whereas python code in Modules/
>_multiprocessing/semaphore.c did not.
>The python multiprocessing module (file semaphore.c) contains:
>"""
>        if (sem_getvalue(self->handle, &sval) < 0) {
>            return PyErr_SetFromErrno(PyExc_OSError);
>        } else if (sval >= self->maxvalue) {
>            PyErr_SetString(PyExc_ValueError, "semaphore or lock "
>                            "released too many times");
>            return NULL;
>        }
>"""
>Changing this to
>"""
>        sval = sem_getvalue(self->handle, &sval);
>        if (sem_getvalue(self->handle, &sval) < 0) {
>            return PyErr_SetFromErrno(PyExc_OSError);
>        } else if (sval >= self->maxvalue) {
>            PyErr_SetString(PyExc_ValueError, "semaphore or lock "
>                            "released too many times");
>            return NULL;
>        }
>"""
>to emulate the previous behavior of sem_getvalue seems to solve my problem 
>(and was easier than rebuilding cygwin1.dll).

That doesn't emulate the previous behavior.  The return value of sem_getvalue
was changed to 0 or -1 as per POSIX.  If self->maxvalue is > 1 then
you won't see an error but it won't be correct either.

cgf

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019