A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Do not use MC_process_clock_add() for now, as it makes the exploration infinitely...
[simgrid.git]
/
teshsuite
/
mc
/
mcmini
/
barber_shop_ok.c
diff --git
a/teshsuite/mc/mcmini/barber_shop_ok.c
b/teshsuite/mc/mcmini/barber_shop_ok.c
index
b44a934
..
b0f17ca
100644
(file)
--- a/
teshsuite/mc/mcmini/barber_shop_ok.c
+++ b/
teshsuite/mc/mcmini/barber_shop_ok.c
@@
-33,6
+33,7
@@
sem_t seatBelt;
// Flag to stop the barber thread when all customers
// have been serviced.
int allDone = 0;
// Flag to stop the barber thread when all customers
// have been serviced.
int allDone = 0;
+int DEBUG = 0;
static void randwait(int secs)
{
static void randwait(int secs)
{
@@
-49,13
+50,16
@@
static void* customer(void* number)
// Leave for the shop and take some random amount of
// time to arrive.
// Leave for the shop and take some random amount of
// time to arrive.
- printf("Customer %d leaving for barber shop.\n", num);
+ if (DEBUG)
+ printf("Customer %d leaving for barber shop.\n", num);
randwait(5);
randwait(5);
- printf("Customer %d arrived at barber shop.\n", num);
+ if (DEBUG)
+ printf("Customer %d arrived at barber shop.\n", num);
// Wait for space to open up in the waiting room...
sem_wait(&waitingRoom);
// Wait for space to open up in the waiting room...
sem_wait(&waitingRoom);
- printf("Customer %d entering waiting room.\n", num);
+ if (DEBUG)
+ printf("Customer %d entering waiting room.\n", num);
// Wait for the barber chair to become free.
sem_wait(&barberChair);
// Wait for the barber chair to become free.
sem_wait(&barberChair);
@@
-65,7
+69,8
@@
static void* customer(void* number)
sem_post(&waitingRoom);
// Wake up the barber...
sem_post(&waitingRoom);
// Wake up the barber...
- printf("Customer %d waking the barber.\n", num);
+ if (DEBUG)
+ printf("Customer %d waking the barber.\n", num);
sem_post(&barberPillow);
// Wait for the barber to finish cutting your hair.
sem_post(&barberPillow);
// Wait for the barber to finish cutting your hair.
@@
-73,7
+78,8
@@
static void* customer(void* number)
// Give up the chair.
sem_post(&barberChair);
// Give up the chair.
sem_post(&barberChair);
- printf("Customer %d leaving barber shop.\n", num);
+ if (DEBUG)
+ printf("Customer %d leaving barber shop.\n", num);
return NULL;
}
return NULL;
}
@@
-85,7
+91,8
@@
static void* barber(void* junk)
while (!allDone) {
// Sleep until someone arrives and wakes you..
while (!allDone) {
// Sleep until someone arrives and wakes you..
- printf("The barber is sleeping\n");
+ if (DEBUG)
+ printf("The barber is sleeping\n");
sem_wait(&barberPillow);
// Skip this stuff at the end...
sem_wait(&barberPillow);
// Skip this stuff at the end...
@@
-93,14
+100,17
@@
static void* barber(void* junk)
// Take a random amount of time to cut the
// customer's hair.
// Take a random amount of time to cut the
// customer's hair.
- printf("The barber is cutting hair\n");
+ if (DEBUG)
+ printf("The barber is cutting hair\n");
randwait(3);
randwait(3);
- printf("The barber has finished cutting hair.\n");
+ if (DEBUG)
+ printf("The barber has finished cutting hair.\n");
// Release the customer when done cutting...
sem_post(&seatBelt);
} else {
// Release the customer when done cutting...
sem_post(&seatBelt);
} else {
- printf("The barber is going home for the day.\n");
+ if (DEBUG)
+ printf("The barber is going home for the day.\n");
}
}
return NULL;
}
}
return NULL;
@@
-116,8
+126,8
@@
int main(int argc, char* argv[])
// Check to make sure there are the right number of
// command line arguments.
// Check to make sure there are the right number of
// command line arguments.
- if (argc !=
4
) {
- printf("Use: SleepBarber <Num Customers> <Num Chairs> <rand seed>\n");
+ if (argc !=
5
) {
+ printf("Use: SleepBarber <Num Customers> <Num Chairs> <rand seed>
<DEBUG>
\n");
exit(-1);
}
exit(-1);
}
@@
-126,6
+136,7
@@
int main(int argc, char* argv[])
numCustomers = atoi(argv[1]);
numChairs = atoi(argv[2]);
RandSeed = atol(argv[3]);
numCustomers = atoi(argv[1]);
numChairs = atoi(argv[2]);
RandSeed = atol(argv[3]);
+ DEBUG = atoi(argv[4]);
// Make sure the number of threads is less than the number of
// customers we can support.
// Make sure the number of threads is less than the number of
// customers we can support.