cvs-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Cvs-cvs] ccvs ./ChangeLog ./NEWS src/ChangeLog src/server.c


From: Derek Robert Price
Subject: [Cvs-cvs] ccvs ./ChangeLog ./NEWS src/ChangeLog src/server.c
Date: Tue, 31 Jan 2006 02:10:35 +0000

CVSROOT:        /cvsroot/cvs
Module name:    ccvs
Branch:         
Changes by:     Derek Robert Price <address@hidden>     06/01/31 02:10:35

Modified files:
        .              : ChangeLog NEWS 
        src            : ChangeLog server.c 

Log message:
        Merge from 1.11.x.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/ChangeLog.diff?tr1=1.1274&tr2=1.1275&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/NEWS.diff?tr1=1.347&tr2=1.348&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/ChangeLog.diff?tr1=1.3339&tr2=1.3340&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/cvs/ccvs/src/server.c.diff?tr1=1.453&tr2=1.454&r1=text&r2=text

Patches:
Index: ccvs/ChangeLog
diff -u ccvs/ChangeLog:1.1274 ccvs/ChangeLog:1.1275
--- ccvs/ChangeLog:1.1274       Fri Dec  9 17:54:55 2005
+++ ccvs/ChangeLog      Tue Jan 31 02:10:35 2006
@@ -1,3 +1,7 @@
+2006-01-30  Derek Price  <address@hidden>
+
+       * NEWS: Note nonblocking flow control pipe fix.
+
 2005-12-09  Derek Price  <address@hidden>
 
        * NEWS: Note misc doc & bug fixes.
Index: ccvs/NEWS
diff -u ccvs/NEWS:1.347 ccvs/NEWS:1.348
--- ccvs/NEWS:1.347     Fri Dec  9 17:54:55 2005
+++ ccvs/NEWS   Tue Jan 31 02:10:35 2006
@@ -14,6 +14,9 @@
 
 BUG FIXES
 
+* Thanks to a report and patch from Garrett Rooney <address@hidden>, paused
+  trigger processes no longer cause the CVS server to consume 100% CPU.
+
 * Thanks to a suggestion from Joseph P. Skudlarek <address@hidden>, an
   :extssh: has been added as a synonym of the :ext: access method, as a
   kindness to users of old version of Eclipse.
Index: ccvs/src/ChangeLog
diff -u ccvs/src/ChangeLog:1.3339 ccvs/src/ChangeLog:1.3340
--- ccvs/src/ChangeLog:1.3339   Mon Jan 30 23:21:52 2006
+++ ccvs/src/ChangeLog  Tue Jan 31 02:10:35 2006
@@ -1,5 +1,10 @@
 2006-01-30  Derek Price  <address@hidden>
 
+       * server.c (do_cvs_command): Set flow control pipe to blocking mode
+       before waiting for it to close.
+       (set_block_fd): New function.
+       (Original patch from Garrett Rooney <address@hidden>.)
+
        * rcs.c (locate_rcs): Improve comments and plug memory leak.
        (rcsbuf_cache_open): Don't recopy file name - it was an ignore case
        issue.
Index: ccvs/src/server.c
diff -u ccvs/src/server.c:1.453 ccvs/src/server.c:1.454
--- ccvs/src/server.c:1.453     Wed Nov 30 19:04:19 2005
+++ ccvs/src/server.c   Tue Jan 31 02:10:35 2006
@@ -2753,6 +2753,25 @@
 /* Used while building list, to point to the last node that already exists.  */
 static struct notify_note *last_node;
 
+/*
+ * Set buffer FD to blocking I/O.  Returns 0 for success or errno code.
+ */
+int
+set_block_fd (fd)
+     int fd;
+{
+    int flags;
+
+    flags = fcntl (fd, F_GETFL, 0);
+    if (flags < 0)
+       return errno;
+    if (fcntl (fd, F_SETFL, flags & ~O_NONBLOCK) < 0)
+       return errno;
+    return 0;
+}
+
+
+
 static void
 serve_notify (char *arg)
 {
@@ -3776,8 +3795,8 @@
        {
            char junk;
            ssize_t status;
-           while ((status = read (flowcontrol_pipe[0], &junk, 1)) > 0
-                  || (status == -1 && errno == EAGAIN));
+           set_block_fd (flowcontrol_pipe[0]);
+           while ((status = read (flowcontrol_pipe[0], &junk, 1)) > 0);
        }
        /* FIXME: No point in printing an error message with error(),
         * as STDERR is already closed, but perhaps this could be syslogged?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]