Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)
Paste
Pasted as Java by Dj Walker z Torunia unia ( 15 years ago )
import java.util.concurrent.Semaphore;
public class SwimmingPool implements SwimmingPoolInterface {
private int licznikWszystkich = 0;
private int licznikGreen = 0;
private int licznikRed = 0;
private int licznikBlue = 0;
private int zieloni=0;
private int niebiescy=0;
private int czerwoni=0;
// private Semaphore basen;
Semaphore pool = new Semaphore(1, true);
Semaphore poolAll = new Semaphore(1, true);
Semaphore niebiescyIn = new Semaphore(1, true);
Semaphore czerwoniIn = new Semaphore(1, true);
Semaphore zieloniIn = new Semaphore(1, true);
Semaphore niebiescyOut = new Semaphore(1, true);
Semaphore czerwoniOut = new Semaphore(1, true);
Semaphore zieloniOut = new Semaphore(1, true);
public void greenEnter() {
if(licznikGreen==0){
poolAll.acquireUninterruptibly();
zieloniIn.acquireUninterruptibly();
licznikGreen++;
zieloniIn.release();
}else{
zieloniIn.acquireUninterruptibly();
licznikGreen++;
zieloniIn.release();
}}
public void greenExit() {
zieloniOut.acquireUninterruptibly();
licznikGreen--;
if(licznikGreen==0)
poolAll.release();
zieloniOut.release();
}
public void redEnter() {
if(licznikRed==0){
poolAll.acquireUninterruptibly();
czerwoniIn.acquireUninterruptibly();
licznikRed++;
czerwoniIn.release();
}else{
czerwoniIn.acquireUninterruptibly();
licznikRed++;
czerwoniIn.release();
}}
public void redExit() {
czerwoniOut.acquireUninterruptibly();
licznikRed--;
if(licznikRed==0)
poolAll.release();
czerwoniOut.release();
}
public void blueEnter() {
if(licznikBlue==0){
poolAll.acquireUninterruptibly();
niebiescyIn.acquireUninterruptibly();
licznikBlue++;
niebiescyIn.release();
}else{
niebiescyIn.acquireUninterruptibly();
licznikBlue++;
niebiescyIn.release();
}}
public void blueExit() {
niebiescyOut.acquireUninterruptibly();
licznikBlue--;
if(licznikBlue==0)
poolAll.release();
niebiescyOut.release();
}
}
Revise this Paste