diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-04-24 13:55:19 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-04-24 13:55:19 -0400 |
commit | f72154b33e67069cd7c308d24255574b9fbacb1d (patch) | |
tree | d10ac52e86e22b744b68806a075ba36196c933c8 /runtime | |
parent | f90f92615df6ff2a62282359281889597e5dbf17 (diff) | |
download | systemtap-steved-f72154b33e67069cd7c308d24255574b9fbacb1d.tar.gz systemtap-steved-f72154b33e67069cd7c308d24255574b9fbacb1d.tar.xz systemtap-steved-f72154b33e67069cd7c308d24255574b9fbacb1d.zip |
PR6451: avoid one class of staprun shutdown deadlock (module/.ctl filehandle = 0)
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/staprun/ChangeLog | 6 | ||||
-rw-r--r-- | runtime/staprun/common.c | 2 | ||||
-rw-r--r-- | runtime/staprun/ctl.c | 4 |
3 files changed, 9 insertions, 3 deletions
diff --git a/runtime/staprun/ChangeLog b/runtime/staprun/ChangeLog index f1abd736..9e0ccb73 100644 --- a/runtime/staprun/ChangeLog +++ b/runtime/staprun/ChangeLog @@ -1,3 +1,9 @@ +2008-04-24 Frank Ch. Eigler <fche@elastic.org> + + PR 6451. + * common.c (control_channel): Initialize to -1. + * ctl.c (close_ctl_channel): Tolerate fd=0. + 2008-04-22 Martin Hunt <hunt@redhat.com> * cap.c (init_cap): Detect capabilities failure and diff --git a/runtime/staprun/common.c b/runtime/staprun/common.c index f8fc418c..b716d27f 100644 --- a/runtime/staprun/common.c +++ b/runtime/staprun/common.c @@ -31,7 +31,7 @@ char *modname = NULL; char *modpath = ""; char *modoptions[MAXMODOPTIONS]; -int control_channel = 0; +int control_channel = -1; /* NB: fd==0 possible */ void parse_args(int argc, char **argv) { diff --git a/runtime/staprun/ctl.c b/runtime/staprun/ctl.c index 15c5c3d3..4597bf72 100644 --- a/runtime/staprun/ctl.c +++ b/runtime/staprun/ctl.c @@ -46,8 +46,8 @@ int init_ctl_channel(const char *name, int verb) void close_ctl_channel(void) { - if (control_channel > 0) { + if (control_channel >= 0) { close(control_channel); - control_channel = 0; + control_channel = -1; } } |