Welcome, guest! Login / Register - Why register?
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

Your Name: Code Language: