On Thu, May 10, 2012 at 1:09 PM, Denis Bilenko <
denis....@gmail.com> wrote:
> On Thu, May 10, 2012 at 2:01 AM, Jim Fulton <
j...@zope.com> wrote:
>> Other than Matthias rightfully disagreeing with my characterization of
>> the signal handler as a monkey patch, I didn't see any other responses
>> to my questions and points.
>>
>> Am I misunderstanding something? This looks like a pretty serious
>> issue with 1.0b2. I'm not using it because of this. The last thing I
>> saw from Denis was "It's not a bug", but I can't agree, either that or
>> it's a serious miss-feature.
>
> It makes no sense to avoid 1.0b2 since you can disable this feature.
My library, zc.resumelb, uses gevent. It is also used with other
applications, including some I may have no control over. It is at
best unseemly and at worse a source of hard to debug bugs to require
use of an environment variable to prevent breakage.
> It does break various subprocess implementations but the trunk already
> have gevent.subprocess module so it's not a problem in practice.
Gevent will often be part of some larger applications. Asking people
to change unrelated parts of their code to use something (say
zc.resumelb) that happens to use gevent is a non-starter (at lease for
zc.resumelb).
> We could make it disabled by default, but why?
So as not to cause mysterious breakage for a feature that people may
not want. Heck, I don't want it, I'm not even sure what it is. :)
I'm guessing that this is a in support of gevent subprocess. I think
it would be fine to install the signal handler at the point that
gevent.subprocess is first used (not inmported, but actually used).
(I'm hoping that you'll tell me that that the signal handler isn't
installed unless someone actually creates a subprocess with
gevent.subprocess and that I'm just confused about the nature of the
problem. :)
> People will create
> their own SIGCHLD handlers, all doing the same thing.
I won't. I can understand why someone woould want to use gevent to
manage subprocesses, but I don't and I want my code to be useable with
other people's code that doesn't use gevent.
Gevent isn't my world. It's just a tool I'm using. I should be able
to use it independently of other libraries I'm using. If I can't, then
I won't use gevent.