aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--P1/src/mapreduce.c39
1 files changed, 19 insertions, 20 deletions
diff --git a/P1/src/mapreduce.c b/P1/src/mapreduce.c
index ed44e9e..9efccf7 100644
--- a/P1/src/mapreduce.c
+++ b/P1/src/mapreduce.c
@@ -34,7 +34,6 @@ int main(int argc, char *argv[]) {
char numMap[10];
sprintf(numMap, "%d", i);
execl("./mapper", "./mapper", &numMap, NULL);
- exit(0);
}
}
@@ -47,29 +46,29 @@ int main(int argc, char *argv[]) {
// ###### DO NOT REMOVE ######
// shuffle sends the word.txt files generated by mapper
// to reducer based on a hash function
- // pid = fork();
- // if(pid == 0){
- // shuffle(nMappers, nReducers);
- // exit(0);
- // }
- // sleep(1);
+ pid = fork();
+ if(pid == 0){
+ shuffle(nMappers, nReducers);
+ exit(0);
+ }
+ sleep(1);
- // pid_t reducerPid;
- // for (int i = 1; i <= nReducers; i++) {
- // reducerPid = fork();
- // if (reducerPid == 0) {
- // char numRed[10];
- // sprintf(numRed, "%d", i);
- // execl("./reducer", "./reducer", &numRed, NULL);
- // }
- // }
+ pid_t reducerPid;
+ for (int i = 1; i <= nReducers; i++) {
+ reducerPid = fork();
+ if (reducerPid == 0) {
+ char numRed[10];
+ sprintf(numRed, "%d", i);
+ execl("./reducer", "./reducer", &numRed, NULL);
+ }
+ }
- // for (int i = 1; i <= nReducers; i++) {
- // //Maybe this works too?
- // wait(NULL);
- // }
+ for (int i = 0; i <= nReducers; i++) {
+ //Maybe this works too?
+ wait(NULL);
+ }
return 0;
} \ No newline at end of file