Mercurial > hg > Database > Christie
view src/main/java/christie/test/topology/paxos/acceptor/PromiseProposal.java @ 190:2d0d41b648fa
add PromiseProposal and refactor acceptor
author | akahori |
---|---|
date | Tue, 12 Feb 2019 16:10:15 +0900 |
parents | |
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; } } }