Branch: refs/heads/master
  Home:   https://github.com/jenkinsci/jenkins
  Commit: 2f2873800e60c468c715c131f050121a4b33c4e2
      
https://github.com/jenkinsci/jenkins/commit/2f2873800e60c468c715c131f050121a4b33c4e2
  Author: joeljohnson <joeljohn...@attask.com>
  Date:   2013-02-16 (Sat, 16 Feb 2013)

  Changed paths:
    M core/src/main/java/hudson/model/Actionable.java

  Log Message:
  -----------
  Changing the sync to only sync before lazy loading the actions.
The Actionable#getActions() method only needs to be synchronized when lazy 
loading. After that, the synchronization is superfluous and impacts performance.
Since the field is volatile, the double-check block works in JDK5+. SeeĀ 
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html for more 
in
Analyzing various thread dumps, many threads and requests stall on this method 
waiting for the lock. Since the lock isn't necessary in most cases anyway,


  Commit: b225178c777cfafc4286b665939909fdfc90ed6f
      
https://github.com/jenkinsci/jenkins/commit/b225178c777cfafc4286b665939909fdfc90ed6f
  Author: Kohsuke Kawaguchi <k...@kohsuke.org>
  Date:   2013-02-16 (Sat, 16 Feb 2013)

  Changed paths:
    M core/src/main/java/hudson/model/AbstractProject.java
    M core/src/main/java/hudson/model/labels/LabelAtom.java

  Log Message:
  -----------
  To make the previous change more effective, these synchronized keywords need 
to go as well.

This change is safe because (i) those actions are read-only and (ii) if they 
produce data that's bit old, that isn't really noticeable.


Compare: 
https://github.com/jenkinsci/jenkins/compare/27f1fd142499...b225178c777c

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-commits+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to