提交 596a0b60 authored 作者: Michael Jerris's avatar Michael Jerris

Mon Mar 9 12:44:03 CDT 2009 Pekka Pessi <first.last@nokia.com>

  * su_alloc: shorten race on _su_deinit()
  Ignore-this: 6d4e6edb434a96e66c9bb018a201a3c6
  
  Make home object unusable earlier during denitialization.


git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@12745 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 39ed058e
Tue Mar 24 10:41:20 CDT 2009 Tue Mar 24 10:41:57 CDT 2009
...@@ -993,6 +993,9 @@ void _su_home_deinit(su_home_t *home) ...@@ -993,6 +993,9 @@ void _su_home_deinit(su_home_t *home)
if (home->suh_blocks) { if (home->suh_blocks) {
size_t i; size_t i;
su_block_t *b; su_block_t *b;
void *suh_lock = home->suh_lock;
home->suh_lock = NULL;
if (home->suh_blocks->sub_destructor) { if (home->suh_blocks->sub_destructor) {
void (*destructor)(void *) = home->suh_blocks->sub_destructor; void (*destructor)(void *) = home->suh_blocks->sub_destructor;
...@@ -1034,11 +1037,7 @@ void _su_home_deinit(su_home_t *home) ...@@ -1034,11 +1037,7 @@ void _su_home_deinit(su_home_t *home)
home->suh_blocks = NULL; home->suh_blocks = NULL;
if (home->suh_lock) { if (suh_lock) {
void *suh_lock = home->suh_lock;
home->suh_lock = NULL;
/* Unlock, or risk assert() or leak handles on Windows */ /* Unlock, or risk assert() or leak handles on Windows */
_su_home_unlocker(suh_lock); _su_home_unlocker(suh_lock);
_su_home_destroy_mutexes(suh_lock); _su_home_destroy_mutexes(suh_lock);
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论