diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/transport/ChangeLog | 5 | ||||
-rw-r--r-- | runtime/transport/transport.c | 6 |
2 files changed, 8 insertions, 3 deletions
diff --git a/runtime/transport/ChangeLog b/runtime/transport/ChangeLog index 11461fef..c7db329c 100644 --- a/runtime/transport/ChangeLog +++ b/runtime/transport/ChangeLog @@ -1,3 +1,8 @@ +2006-06-13 Martin Hunt <hunt@redhat.com> + + * transport.c (_stp_transport_close): Destroy workqueue when + done. + 2006-06-09 Martin Hunt <hunt@redhat.com> * transport.c: Using the default workqueue was causing problems diff --git a/runtime/transport/transport.c b/runtime/transport/transport.c index 26e6dd9a..5b0b4ff2 100644 --- a/runtime/transport/transport.c +++ b/runtime/transport/transport.c @@ -168,9 +168,9 @@ static void _stp_work_queue (void *data) /* if exit flag is set AND we have finished with probe_start() */ if (unlikely(_stp_exit_flag && atomic_read(&_stp_start_finished))) { + _stp_cleanup_and_exit(0); cancel_delayed_work(&stp_exit); flush_workqueue(_stp_wq); - _stp_cleanup_and_exit(0); wake_up_interruptible(&_stp_proc_wq); } else queue_delayed_work(_stp_wq, &stp_exit, STP_WORK_TIMER); @@ -185,9 +185,9 @@ static void _stp_work_queue (void *data) void _stp_transport_close() { kbug("************** transport_close *************\n"); - cancel_delayed_work(&stp_exit); - flush_workqueue(_stp_wq); _stp_cleanup_and_exit(1); + cancel_delayed_work(&stp_exit); + destroy_workqueue(_stp_wq); wake_up_interruptible(&_stp_proc_wq); #ifdef STP_RELAYFS if (_stp_transport_mode == STP_TRANSPORT_RELAYFS) |