Universidad de Costa Rica

Escuela de Ciencias de la Computación e Informática

CI-0122 Sistemas operativos

Ejemplos

CI0122 / Ejemplos / pthreads / h2o


#include <semaphore.h>

class SemPT {

   public:

      SemPT( int );
      ~SemPT();
      int Signal();
      int Wait();

   private:
      sem_t * sem;

};


class Mutex {

   public:

      Mutex();
      ~Mutex();
      int Lock();
      int Unlock();

   private:
      pthread_mutex_t * mutex;
};


class Lock {
   public:
      Lock();
      ~Lock();
      int Acquire();
      int Release();
      pthread_mutex_t * getMutex() { return lock; }

   private:
      pthread_mutex_t * lock;

};


class Condition {

   public:
      Condition();
      ~Condition();
      int Wait( Lock * conditionLock );
      int Signal( Lock * conditionLock );
      int Broadcast( Lock * conditionLock );

   private:
      pthread_cond_t * vc;

};