diff options
author | Joshua Colp <jcolp@digium.com> | 2015-01-27 11:47:02 +0000 |
---|---|---|
committer | Joshua Colp <jcolp@digium.com> | 2015-01-27 11:47:02 +0000 |
commit | ceedd4037029fe8d61cccbdcbbd42ee1993c5e6f (patch) | |
tree | e70ce1b568e26c53aba0c2b21eb1f96ddfd6b4c3 /res/parking/parking_manager.c | |
parent | 702d79de2a2341954ef599f4c5a4c5f31c1b5edc (diff) |
res_parking: Fix crash due to race condition when unloading.
There is currently a race condition when unloading the res_parking
module. Depending on the will of the universe the subscription
invocation may occur AFTER the module is unloaded. This is because
the module does NOT use stasis_unsubscribe_and_join when terminating
the subscription. It merely uses stasis_unsubscribe.
This change makes it use stasis_unsubscribe_and_join which is documented
for usage in this exact scenario.
AST-1520 #close
Review: https://reviewboard.asterisk.org/r/4375/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/parking/parking_manager.c')
-rw-r--r-- | res/parking/parking_manager.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/res/parking/parking_manager.c b/res/parking/parking_manager.c index 74b455928..b9e46c7d5 100644 --- a/res/parking/parking_manager.c +++ b/res/parking/parking_manager.c @@ -689,7 +689,7 @@ int load_parking_manager(void) static void parking_manager_disable_stasis(void) { - parking_sub = stasis_unsubscribe(parking_sub); + parking_sub = stasis_unsubscribe_and_join(parking_sub); } void unload_parking_manager(void) |