aboutsummaryrefslogtreecommitdiffhomepage
path: root/proc.cpp
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-06-16 02:53:14 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2013-06-16 02:53:53 -0700
commit5d75ee7721d9bd09e38375caa3ab2394246c0f3d (patch)
treea4539caa033f7cf9e0da328fe01ed61acc4cb9e0 /proc.cpp
parent70208eb33a783579e528b8491166dc9d593153d1 (diff)
Mark jobs as completed when all processes have finished, not just the last one.
Diffstat (limited to 'proc.cpp')
-rw-r--r--proc.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/proc.cpp b/proc.cpp
index 749f38c2..d0412414 100644
--- a/proc.cpp
+++ b/proc.cpp
@@ -296,15 +296,19 @@ int job_is_stopped(const job_t *j)
\param j the job to test
*/
-int job_is_completed(const job_t *j)
+bool job_is_completed(const job_t *j)
{
- process_t *p;
assert(j->first_process != NULL);
- for (p = j->first_process; p->next; p = p->next)
- ;
-
- return p->completed;
-
+ bool result = true;
+ for (process_t *p = j->first_process; p != NULL; p = p->next)
+ {
+ if (! p->completed)
+ {
+ result = false;
+ break;
+ }
+ }
+ return result;
}
void job_set_flag(job_t *j, unsigned int flag, int set)