Changeset 3937

Show
Ignore:
Timestamp:
03/21/06 19:24:55 (3 years ago)
Author:
morris
Message:

Need pool around assert to prevent race

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • libwired/trunk/libwired/base/wi-runtime.c

    r3933 r3937  
    5656        WI_ASSERT((_WI_RUNTIME_BASE((instance))->magic == _WI_RUNTIME_MAGIC), "%p is not a valid instance", (instance)) 
    5757 
    58 #define _WI_RUNTIME_ASSERT_ZOMBIE(instance) \ 
    59         WI_ASSERT(!_WI_RUNTIME_IS_ZOMBIE((instance)), "%p %@ is a deallocated instance", (instance), (instance)) 
     58#define _WI_RUNTIME_ASSERT_ZOMBIE(instance)                     \ 
     59        WI_STMT_START                                                                   \ 
     60                if(_WI_RUNTIME_IS_ZOMBIE((instance)))           \ 
     61                        _wi_runtime_zombie_abort((instance));   \ 
     62        WI_STMT_END 
    6063 
    6164 
    6265static void                                                             _wi_runtime_null_abort(wi_runtime_instance_t *); 
     66static void                                                             _wi_runtime_zombie_abort(wi_runtime_instance_t *); 
    6367 
    6468 
     
    196200 
    197201 
     202static void _wi_runtime_zombie_abort(wi_runtime_instance_t *instance) { 
     203        wi_pool_t               *pool; 
     204         
     205        pool = wi_pool_init(wi_pool_alloc()); 
     206        WI_ASSERT(0, "%p %@ is a deallocated instance", instance, instance); 
     207        wi_release(pool); 
     208} 
     209 
     210 
     211 
    198212#pragma mark - 
    199213