[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: PATCH for bug in CVS flow control
From: |
Mark D. Baushke |
Subject: |
Re: PATCH for bug in CVS flow control |
Date: |
Tue, 24 Aug 2004 16:06:18 -0700 |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Ian Lance Taylor <ian@wasabisystems.com> writes:
> I sent this patch in a few months ago, but it doesn't seem to have
> been applied yet. The current code is buggy, and this patch, or a
> similar one, should be applied.
Hmmm... https://ccvs.cvshome.org/issues/show_bug.cgi?id=198
In recurse.c 1.75 for cvs 1.11.2 we see:
should_readlock = noexec ? 0 : frame->readlock;
(where frame->readlock was only ever 0 for write or 1 for read)
...
if (server_active
&& (should_readlock || noexec))
server_pause_check();
In recurse.c 1.97 we see
locktype = noexec ? CVS_LOCK_NONE : frame->locktype;
(where frame->locktype is one of CVS_LOCK_NONE=0, CVS_LOCK_READ=1,
CVS_LOCK_WRITE=2)
...
if (server_active && locktype != CVS_LOCK_NONE)
server_pause_check();
I am persuaded that you are correct. I will be applying your patch
to both the STABLE and FEATURE branches as soon as they pass the
existing regression tests.
Thanks!
-- Mark
2004-06-09 Ian Lance Taylor <ian@wasabisystems.com>
* recurse.c (do_recursion): Correct test for calling
server_pause_check to occur when locktype != CVS_LOCK_WRITE.
- --- recurse.c.~1.97.~ 2004-05-03 11:28:25.000000000 -0400
+++ recurse.c 2004-06-09 14:25:29.000000000 -0400
@@ -640,6 +640,6 @@ do_recursion (struct recursion_frame *fr
* generating data, to give the buffers a chance to drain to the
* remote client. We should not have locks active at this point,
* but if there are writelocks around, we cannot pause here. */
- - if (server_active && locktype != CVS_LOCK_NONE)
+ if (server_active && locktype != CVS_LOCK_WRITE)
server_pause_check();
#endif
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3 (FreeBSD)
iD8DBQFBK8nq3x41pRYZE/gRApqpAKDh0+Frzl8CmTg1kP9aOx8stTSydwCbBIJ3
6lXxdWdgPUF2xHNMWdlUcAQ=
=E0Y4
-----END PGP SIGNATURE-----