harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geir Magnusson Jr." <g...@pobox.com>
Subject Re: [classlib][luni] signalis interruptus in hysock
Date Thu, 31 Aug 2006 09:55:54 GMT

On Aug 30, 2006, at 11:04 PM, Paulex Yang wrote:

> Geir Magnusson Jr. wrote:
>> Time to take another run at this since I didn't get any responses  
>> on the drlvm thread.
>>
>> We have the problem that DRLVM uses SIGUSR2 in the thread manager  
>> (not an unreasonable thing to do, I believe) but this results in  
>> knocking threads out of select() in hysock.c (and I'm sure we'll  
>> see it in other places.)
>>
>> Now, I'm not sure what the right course of action is.  We have a  
>> suggested patch from Artem that suggests we just ignore when the  
>> tread is interrupted :
>>
>> --- modules/luni/src/main/native/port/linux/hysock.c
>> +++ modules/luni/src/main/native/port/linux/hysock.c
>> @@ -2570,11 +2570,16 @@ hysock_select (struct HyPortLibrary * po
>>   I_32 rc = 0;
>>   I_32 result = 0;
>>
>> -  result =
>> +  do
>> +  {
>> +    result =
>>     select (nfds, readfds == NULL ? NULL : &readfds->handle,
>>             writefds == NULL ? NULL : &writefds->handle,
>>             exceptfds == NULL ? NULL : &exceptfds->handle,
>>             timeout == NULL ? NULL : &timeout->time);
>> +  }
>> +  while (result == -1 && errno == EINTR);
>> +
>>   if (result == -1)
>>     {
>>       rc = errno;
> IIRC, months ago similar approach was discussed in another thread  
> for j.nio.channels.InterruptibleChannel implementation, but IMHO it  
> can be a workaround but is not acceptable as a solution, because  
> InterruptibleChannel is extensible by user application, i.e., user  
> can implement their own interruptible blocking I/O easily without  
> considering too much on thread sync issues, it's not reasonable to  
> ask user writing codes within a loop like this.

So what was deemed acceptable as a solution?

geir


---------------------------------------------------------------------
Terms of use : http://incubator.apache.org/harmony/mailing.html
To unsubscribe, e-mail: harmony-dev-unsubscribe@incubator.apache.org
For additional commands, e-mail: harmony-dev-help@incubator.apache.org


Mime
View raw message