diff options
author | Matt Strapp <strap012@umn.edu> | 2020-10-05 22:54:37 -0500 |
---|---|---|
committer | Matt Strapp <strap012@umn.edu> | 2020-10-05 22:54:37 -0500 |
commit | 38c4c82aaa32e89c54c3adfb4245217557dd0740 (patch) | |
tree | ec0168657939bf6b1a5a04e4e47e4a9dcdbd819c /P1/src | |
parent | Add error handler for mappers (diff) | |
download | csci4061-38c4c82aaa32e89c54c3adfb4245217557dd0740.tar csci4061-38c4c82aaa32e89c54c3adfb4245217557dd0740.tar.gz csci4061-38c4c82aaa32e89c54c3adfb4245217557dd0740.tar.bz2 csci4061-38c4c82aaa32e89c54c3adfb4245217557dd0740.tar.lz csci4061-38c4c82aaa32e89c54c3adfb4245217557dd0740.tar.xz csci4061-38c4c82aaa32e89c54c3adfb4245217557dd0740.tar.zst csci4061-38c4c82aaa32e89c54c3adfb4245217557dd0740.zip |
Add error handling (Fixing #4 again)
Diffstat (limited to '')
-rw-r--r-- | P1/src/mapreduce.c | 27 |
1 files changed, 23 insertions, 4 deletions
diff --git a/P1/src/mapreduce.c b/P1/src/mapreduce.c index 2428f75..19cf937 100644 --- a/P1/src/mapreduce.c +++ b/P1/src/mapreduce.c @@ -38,14 +38,24 @@ int main(int argc, char *argv[]) { char numMap[10]; sprintf(numMap, "%d", i); execl("./mapper", "./mapper", &numMap, NULL); + printf("Mapper execution failed! Make sure \"mapper\" exists in the directory.\n"); + return 4; + } else if (mapperPid == -1) { + printf("Fork failed!\n"); + return 1; } } for (int i = 0; i <= nMappers; i++) { //Hopefully this works - wait(NULL); + int waitError = wait(NULL); + if (waitError == -1) + { + printf("Wait failed!\n"); + return 5; + } } - +printf("Not stuck here.\n"); // ###### DO NOT REMOVE ###### // shuffle sends the word.txt files generated by mapper @@ -57,7 +67,7 @@ int main(int argc, char *argv[]) { } sleep(1); - +printf("Not stuck here.\n"); pid_t reducerPid; for (int i = 1; i <= nReducers; i++) { @@ -66,12 +76,21 @@ int main(int argc, char *argv[]) { char numRed[10]; sprintf(numRed, "%d", i); execl("./reducer", "./reducer", &numRed, NULL); + printf("Reducer execution failed! Make sure \"reducer\" exists in the directory.\n"); + return 3; + } else if (reducerPid == -1) { + printf("Fork failed!\n"); + return 2; } } for (int i = 0; i <= nReducers; i++) { //Maybe this works too? - wait(NULL); + int waitError = wait(NULL); + if (waitError == -1) { + printf("Wait failed!\n"); + return 5; + } } return 0; |