lstream writing, flushing, & closing

Adrian Aichner adrian at xemacs.org
Sun Nov 14 05:16:42 EST 2004


Jerry James <james at xemacs.org> writes:

> Still flushing my own buffers ...
>
> "Ben Wing" <ben at 666.com> wrote:
>>> -----Original Message-----
>>> From: Jerry James [mailto:james at xemacs.org] 
>>> Sent: Friday, October 22, 2004 8:57 AM
>>> To: XEmacs Beta
>>> Cc: Ben Wing
>>> Subject: lstream writing, flushing, & closing
>
> [snip]
>
>>> discarding error_occurred set by the writer.  It looks to me 
>>> like the code should be this instead:
>>> 
>>>   if (!error_occurred && lstr->imp->flusher)
>>>     error_occurred = (lstr->imp->flusher) (lstr) < 0;
>>> 
>>> Do you agree?
>>
>> Yes, this looks right.
>
> Okay, I will send in a patch today to fix this.
>
> [snip]
>
>>> If you have any suggestions about how we might fix this 
>>> problem for Linux users without making the Windows users 
>>> suffer, I would really appreciate hearing about it.
>>
>> Well, if necessary, you could set a flag only for the filedesc lstream and
>> test it in Lstream_pseudo_close().  That seems like a big kludge though, so
>> I'd like to see the backtrace that Adrian posted -- could you send it to me?
>> I can't locate the email where he posted it.
>
> There is no backtrace.  In fact, Adrian said that neither C-g nor C-G
> would interrupt XEmacs when it got into those long hangs.  See:
>
> http://list-archive.xemacs.org/xemacs-beta/200409/msg00422.html
>
> Do we have any Windows users in the audience who would consent to
> performing an experiment?  I would like to have somebody run with a

Since I reverted my own patch to close handles, and built with Ben's
megapatch implementing a corrected version thereof, I have not seen
these uninterruptible hangs.  I've been using XEmacs every day and
kept it running for many days so I should have ween them.

Thanks Ben!

Jerry, I'm willing to test your patch also.

I still have some CVS conflict resolution to do, but other than that I
should be able to test your patch.

> modified version of the patch that caused Adrian trouble, but this time

It probably was not your patch after all, as stated above.

> call warn_when_safe with data that is about to be discarded from a
> closing lstream, as well as some information about the lstream itself.
> Hopefully that will be sufficiently enlightening that we can get rid of
> that data loss we Linux users have had to suffer from for so long.

Best regards,

Adrian

-- 
Adrian Aichner
 mailto:adrian at xemacs.org
 http://www.xemacs.org/




More information about the XEmacs-Beta mailing list