Upgradable read-write lock written in Java.