// global_Sem_Mutex.h /****************************************************************************** * Programmer: Theresa Nelson * Program: Project 2, Cookies2Code * Environment: Fedora Core 4, g++ compiler * Class: Operating Systems, Capra * Date Last Modified: October 17, 2005 * * * COMMENTS: * This file contains code for global_Sem_Mutex.h. It is holds * declarations for mutexes that are used in cookies2code.cpp, * Elf.cpp, and Student.cpp * * * Credit given to: * http://dis.cs.umass.edu/~wagner/threads_html/tutorial.html * http://greenteapress.com/semaphores/ * * * Honor Pledge: * I pledge that this assignment has been completed in compliance with * the Undergraduate Honor Code and that I have neither given nor received * any unauthorized aid on this assignment. * Signed: Theresa Nelson * * *****************************************************************************/ #ifndef GLOBAL_SEM_MUTEX_H #define GLOBAL_SEM_MUTEX_H // include declarations #include #include "Semaphore.h" #include #include #include #include #include // set pthread defaults #define pthread_attr_default NULL #define pthread_mutexattr_default NULL #define pthread_condattr_default NULL extern pthread_mutex_t grainMutex; // gain access to grain variable extern pthread_mutex_t grainAvailableMutex; // there is grain available extern pthread_mutex_t eCookiesMutex; // gain access to elf cookies variable extern pthread_mutex_t eCookiesAvailableMutex; // there are elf cookies available extern pthread_mutex_t sCookiesMutex; // gain access to student cookies variable extern pthread_mutex_t sCookiesAvailableMutex; // there are student cookies available extern pthread_mutex_t codeMutex; // gain access to code written variable extern Semaphore tractors; // keep track of how many tractors are being used extern Semaphore ovens; // keep track of how many ovens are being used extern Semaphore trucks; // keep track of how many trucks are being used extern Semaphore computers; // keep track of how many computers are being used extern Semaphore threadRendevous; // keep track of how many threads are done executing #endif