Mercurial > hg > Database > Christie
view src/main/java/christie/test/topology/paxos/acceptor/PromiseProposal.java @ 193:f4343de364da
fix paxos
author | akahori |
---|---|
date | Tue, 26 Feb 2019 18:33:49 +0900 |
parents | 2d0d41b648fa |
children |
line wrap: on
line source
package christie.test.topology.paxos.acceptor; import christie.test.topology.paxos.Proposal; // singleton public class PromiseProposal { Proposal promiseProposal = null; private static PromiseProposal instance = new PromiseProposal(); private Object _lock = new Object(); private boolean sync = false; public void setPromiseProposal(Proposal promiseProposal){ this.promiseProposal = promiseProposal; } public Proposal getPromiseProposal() { return promiseProposal; } public synchronized static PromiseProposal getInstance(){ return instance; } public void lock(){ synchronized (_lock){ while(sync){ try { _lock.wait(); } catch (InterruptedException e) { } } } sync = true; } public void unLock(){ synchronized (_lock){ _lock.notify(); sync = false; } } }