Synchornized block in NIOServerCnxn
-----------------------------------

                 Key: ZOOKEEPER-59
                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-59
             Project: Zookeeper
          Issue Type: Bug
          Components: server
            Reporter: Flavio Paiva Junqueira


There are two synchronized blocks locking on different objects, and to me they 
should be guarded by the same object. Here are the parts of the code I'm 
talking about:

[EMAIL PROTECTED]
...
          synchronized (this) {
                outstandingRequests++;
                // check throttling
                if (zk.getInProcess() > factory.outstandingLimit) {
                    disableRecv();
                    // following lines should not be needed since we are already
                    // reading
                    // } else {
                    // enableRecv();
                }
            } 


[EMAIL PROTECTED]
...
         synchronized (this.factory) {
                outstandingRequests--;
                // check throttling
                if (zk.getInProcess() < factory.outstandingLimit
                        || outstandingRequests < 1) {
                    sk.selector().wakeup();
                    enableRecv();
                }
            }


I think the second one is correct, and the first synchronized block should be 
guarded by "this.factory". 

This could be related to issue ZOOKEEPER-57, but I have no concrete indication 
that this is the case so far.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to