aboutsummaryrefslogtreecommitdiff
path: root/server-job.c
diff options
context:
space:
mode:
authorNicholas Marriott <nicm@openbsd.org>2009-11-01 23:20:37 +0000
committerNicholas Marriott <nicm@openbsd.org>2009-11-01 23:20:37 +0000
commit2f813ef75d7d1cfb32d78923ae6963be7266de55 (patch)
treefed2d2ac2f0b98903eea186a19f2444a8ee99452 /server-job.c
parent32299e401039e9c88e430516e9d85d59d551b859 (diff)
downloadrtmux-2f813ef75d7d1cfb32d78923ae6963be7266de55.tar.gz
rtmux-2f813ef75d7d1cfb32d78923ae6963be7266de55.tar.bz2
rtmux-2f813ef75d7d1cfb32d78923ae6963be7266de55.zip
Add a flag for jobs that shouldn't be freed after they've died and use it for
status jobs, then only kill those jobs when status-left, status-right or set-titles-string is changed. Fixes problems with changing options from inside #().
Diffstat (limited to 'server-job.c')
-rw-r--r--server-job.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/server-job.c b/server-job.c
index 5a703b7b..6ff15860 100644
--- a/server-job.c
+++ b/server-job.c
@@ -64,7 +64,10 @@ restart:
if (job->callbackfn != NULL) {
job->callbackfn(job);
- goto restart; /* could be freed by callback */
+ if ((!job->flags & JOB_PERSIST)) {
+ job_free(job);
+ goto restart;
+ }
}
}
}