This is the mail archive of the java-patches@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Socket regressions


>>>>> "Jeff" == Jeff Sturm <jsturm@one-point.com> writes:

Jeff> 1) write() sometimes hangs in an infinite loop.  It appears that
Jeff> we don't handle an error return from the system call properly.
Jeff> Moreover we ignore certain important errors like EBADF (why?).

I don't think there is a good reason to ignore EBADF.
In theory we should never see EBADF.  That means that if we do, an
exception really is appropriate.

Jeff> 2) SIGPIPE randomly occurs while running in gdb, even though we
Jeff> ignore this signal.

I think that's a gdb/inferior interaction thing.  Put this into
.gdbinit:

    handle SIGPIPE nostop noprint

That works for me.

Jeff> 3) available() tends to return 1 for sockets even when there's
Jeff> nothing to be read.  Is it important to also check FD_ISSET on
Jeff> the read descriptor?  Or can we trust the return value of
Jeff> select()?

I thought we could trust select()s return value.  Can it return 1
with !FD_ISSET(...)?  In any case, I agree we ought to fix available
to be as reliable as we can make it.

Tom


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]