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)6 Sync::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)12 int 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()29 int Sync::get_semid()
30 {
31   if(m_type == eSem)
32     return Semaphore::get_semid();
33   return 0;
34 }
35