/******************************************************************************* * File: startApp.c * Purpose: mutex with locks * Course: bsy * Author: M. Thaler, 2011 * Revision: 5/2012 * Version: v.fs20 *******************************************************************************/ #include #include #include #include #include #include #include #include "commonDefs.h" #include "coffeeTeller.h" #include "customer.h" //****************************************************************************** // common data cData cD; //****************************************************************************** int main(void) { unsigned int j; int pthr; pthread_t tellerThread, customerThreads[CUSTOMERS]; cD.coinCount = 0; cD.selCount1 = 0; cD.selCount2 = 0; pthread_mutex_init(&(cD.lock), NULL); // start teller and customers now that everything is set up pthr = pthread_create(&tellerThread, NULL, coffeeTeller, &cD); assert(pthr == 0); for (j = 0; j < CUSTOMERS; j++) { pthr = pthread_create(&(customerThreads[j]), NULL, customer, &cD); assert(pthr == 0); } // wait for all threads to terminate pthread_join(tellerThread, NULL); for (j = 0; j < CUSTOMERS; j++) { pthr = pthread_join(customerThreads[j], NULL); assert(pthr == 0); } } //******************************************************************************