The socket or pipe really needs to be verified closed there to report errors properly. Can the pipe or socket be set to O_NONBLOCK just before this call or could some other read call be used that won't block?
Derek -- *8^) Email: [EMAIL PROTECTED] Get CVS support at http://ximbiot.com -- All work and no play makes Bart a dull boy. All work and no play makes Bart a dull boy. All work and no play makes Bart a dull boy... - Bart Simpson on chalkboard, _The Simpsons_ Mark D. Baushke wrote: >Hi Derek, > >I suspect this patch needs to get into current cvs sources. >(It is in the FreeBSD top-of-tree sources already.) > >I can file this as a bug report if you wish... > > Thanks, > -- Mark > [EMAIL PROTECTED] > >FreeBSD Log: >---------------------------- >date: 2002/09/02 07:58:04; author: peter; state: Exp; lines: +627 -17 >Fix a cvs server bug introduced in 1.11.2, in the words of the author: >--- >Fix communication hanging in communication shutdown phase, caused by at >least older CVS clients (version < 1.11.2) and a semantically incorrect >usage of getc() by the server. >--- > >getc() was being used on a blocking socket/pipe. > >Submitted by: rse >---------------------------- > >Index:src/buffer.c >=================================================================== >RCS file: /cvs/ccvs/src/buffer.c,v >retrieving revision 1.19 >diff -u -p -r1.19 buffer.c >--- buffer.c 20 May 2002 18:27:55 -0000 1.19 >+++ buffer.c 24 Sep 2002 06:54:01 -0000 >@@ -1392,8 +1392,7 @@ stdio_buffer_shutdown (buf) > > if (buf->input) > { >- if (! buf_empty_p (buf) >- || getc (bc->fp) != EOF) >+ if (! buf_empty_p (buf)) > { > # ifdef SERVER_SUPPORT > if (server_active) > > _______________________________________________ Bug-cvs mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-cvs