[ofw] SVN rev 1559

Fab Tillier ftillier at windows.microsoft.com
Mon Sep 22 14:00:33 PDT 2008


Hi Leo,

I'm updating my source base and looking over the changes.  You commented out an assertion in the complib pool abstraction that all objects were returned before a pool is destroyed.  You added a comment that you hit the assertion during shutdown.

Was it not possible to fix the caller to force all items to be returned to the pool, rather than removing the check?  The check is actually valuable, since the destructor for pool objects won't be called for objects that were not returned, potentially leaking more resources.

To refresh our memories:
>Index: core/complib/cl_pool.c
>===================================================================
>--- core/complib/cl_pool.c      (revision 1558)
>+++ core/complib/cl_pool.c      (revision 1559)
>@@ -180,8 +180,10 @@
>                 * if they haven't, then most likely they are still using memory
>                 * that will be freed, and the destructor will not be called!
>                 */
>-               CL_ASSERT( cl_qcpool_count( p_pool ) == p_pool->num_objects );
>
>+// Assert can happen in shutdown. Need to find a way to distinguish between the cases
>+//             CL_ASSERT( cl_qcpool_count( p_pool ) == p_pool->num_objects );
>+
>                /* call the user's destructor for each object in the pool */
>                if( p_pool->pfn_dtor )
>                {
>

-Fab



More information about the ofw mailing list