tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Costin Manolache <cos...@gmail.com>
Subject Re: svn commit: r1296944 - /tomcat/native/trunk/native/src/poll.c
Date Mon, 05 Mar 2012 21:39:45 GMT
On Mon, Mar 5, 2012 at 4:45 AM, Mladen Turk <mturk@apache.org> wrote:

> On 03/05/2012 07:30 AM, costin@apache.org wrote:
>
>> Author: costin
>> Date: Mon Mar  5 06:30:17 2012
>> New Revision: 1296944
>>
>> URL: http://svn.apache.org/viewvc?**rev=1296944&view=rev<http://svn.apache.org/viewvc?rev=1296944&view=rev>
>> Log:
>> EINTR needs to be returned to java in order for Poll.interrupt() to work,
>> it is already handled in AprEndpoint.
>>
>
> Not sure if that's correct.
> EINTR is transient signal and doesn't mean that the actual event was fired.
> Any function that waits on some event should restart the operation if EINTR
> was signalled. See 'man poll'
>
> If interrupt doesn't work its something else to blame, not EINTR.
>

If interrupt() is called, EINTR is generated as result to poll - confirmed
with printfs().
Without this change - poll is not interrupted. I spent quite a bit of time
debugging it.

It is true EINTR is 'transient signal' and may be generated without an
event fired - that's what
interrupt is supposed to do after all, and it's possible other events cause
it.

I see no harm in returning this to the java stack - the AprEndpoint is
expecting it along with timeup.

Costin

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message