diff options
Diffstat (limited to 'src/multiprocessing.c')
-rw-r--r-- | src/multiprocessing.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/multiprocessing.c b/src/multiprocessing.c index 4ae9b31..7452314 100644 --- a/src/multiprocessing.c +++ b/src/multiprocessing.c @@ -335,6 +335,8 @@ int mp_pool_join(struct MultiProcessingPool *pool, size_t jobs, size_t flags) { if (status >> 8 != 0 || (status & 0xff) != 0) { fprintf(stderr, "%s Task failed\n", progress); + failures++; + if (flags & MP_POOL_FAIL_FAST && pool->num_used > 1) { mp_pool_kill(pool, SIGTERM); return -2; @@ -353,7 +355,6 @@ int mp_pool_join(struct MultiProcessingPool *pool, size_t jobs, size_t flags) { // Update progress and tell the poller to ignore the PID. The process is gone. slot->pid = MP_POOL_PID_UNUSED; - failures += status; } else if (pid < 0) { fprintf(stderr, "waitpid failed: %s\n", strerror(errno)); return -1; |