Remove support for recursive CL_INIT/CL_DEINIT calls.
authorftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 19 Sep 2005 06:48:49 +0000 (06:48 +0000)
committerftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Mon, 19 Sep 2005 06:48:49 +0000 (06:48 +0000)
Added clearing gp_mem_tracker pointer after destruction.

Signed-off-by: Fab Tillier (ftillier@silverstorm.com)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@72 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

core/complib/cl_memory.c
core/complib/cl_obj.c

index 3ed52f0..671509c 100644 (file)
 \r
 \r
 #include "cl_memtrack.h"\r
-#include <complib/cl_atomic.h>\r
 \r
 \r
 cl_mem_tracker_t               *gp_mem_tracker = NULL;\r
-atomic32_t                             g_mem_trk_ref = 0;\r
 \r
 \r
 /*\r
@@ -75,10 +73,7 @@ __cl_mem_track_start( void )
        cl_status_t                     status;\r
 \r
        if( gp_mem_tracker )\r
-       {\r
-               cl_atomic_inc( &g_mem_trk_ref );\r
                return;\r
-       }\r
 \r
        /* Allocate the memory tracker object. */\r
        gp_mem_tracker = (cl_mem_tracker_t*)\r
@@ -100,8 +95,6 @@ __cl_mem_track_start( void )
                return;\r
        }\r
 \r
-       cl_atomic_inc( &g_mem_trk_ref );\r
-\r
        cl_msg_out( "\n\n\n*** Memory tracker object address = %p ***\n\n\n",\r
                gp_mem_tracker );\r
 }\r
@@ -119,9 +112,6 @@ __cl_mem_track_stop( void )
        if( !gp_mem_tracker )\r
                return;\r
 \r
-       if( cl_atomic_dec( &g_mem_trk_ref ) )\r
-               return;\r
-\r
        if( cl_qmap_count( &gp_mem_tracker->alloc_map ) )\r
        {\r
                /* There are still items in the list.  Print them out. */\r
@@ -151,6 +141,7 @@ __cl_mem_track_stop( void )
 \r
        /* Free the memory allocated for the memory tracker object. */\r
        __cl_free_priv( gp_mem_tracker );\r
+       gp_mem_tracker = NULL;\r
 }\r
 \r
 \r
index 7448342..d07c8f9 100644 (file)
@@ -43,7 +43,6 @@
 \r
 /* The global object manager. */\r
 cl_obj_mgr_t                           *gp_obj_mgr = NULL;\r
-atomic32_t                                     g_cl_obj_ref = 0;\r
 \r
 \r
 \r
@@ -58,10 +57,7 @@ cl_obj_mgr_create()
 \r
        /* See if the object manager has already been created. */\r
        if( gp_obj_mgr )\r
-       {\r
-               cl_atomic_inc( &g_cl_obj_ref );\r
                return CL_SUCCESS;\r
-       }\r
 \r
        /* Allocate the object manager. */\r
        gp_obj_mgr = cl_zalloc( sizeof( cl_obj_mgr_t ) );\r
@@ -74,8 +70,6 @@ cl_obj_mgr_create()
        cl_async_proc_construct( &gp_obj_mgr->async_proc_mgr );\r
        cl_qpool_construct( &gp_obj_mgr->rel_pool );\r
 \r
-       cl_atomic_inc( &g_cl_obj_ref );\r
-\r
        /* Initialize the spinlock. */\r
        status = cl_spinlock_init( &gp_obj_mgr->lock );\r
        if( status != CL_SUCCESS )\r
@@ -116,10 +110,6 @@ cl_obj_mgr_destroy()
        if( !gp_obj_mgr )\r
                return;\r
 \r
-       /* See if this is the last call. */\r
-       if( cl_atomic_dec( &g_cl_obj_ref ) )\r
-               return;\r
-\r
        /* Verify that all object's have been destroyed. */\r
        for( p_list_item = cl_qlist_head( &gp_obj_mgr->obj_list );\r
                 p_list_item != cl_qlist_end( &gp_obj_mgr->obj_list );\r