1 #include "port.h" 2 #include "semaphore.h" 3 #include "sync.h" 4 #include <stdio.h> 5 Sync(SYNC_TYPE type,int semKey,int num_tests)6Sync::Sync(SYNC_TYPE type, int semKey, int num_tests) 7 : Semaphore(semKey, num_tests) 8 , m_type(type) 9 { 10 } 11 decrement_and_wait(int nr_sem)12int Sync::decrement_and_wait(int nr_sem) 13 { 14 switch(m_type) 15 { 16 case eSem: 17 return Semaphore::decrement_and_wait(nr_sem); 18 case ePrompt: 19 printf("\n%d:\n", nr_sem); 20 fflush(NULL); 21 char buf[16]; 22 fgets(buf, sizeof(buf) - 1, stdin); 23 case eNone: 24 break; 25 } 26 return 0; 27 } 28 get_semid()29int Sync::get_semid() 30 { 31 if(m_type == eSem) 32 return Semaphore::get_semid(); 33 return 0; 34 } 35