pike.git / src / module.c

version» Context lines:

pike.git/src/module.c:1:   /*   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: module.c,v 1.37 2006/01/24 13:10:27 mast Exp $ + || $Id: module.c,v 1.38 2006/01/24 14:19:23 mast Exp $   */      #include "global.h"   #include "module.h"   #include "pike_macros.h"   #include "pike_error.h"   #include "builtin_functions.h"   #include "main.h"   #include "svalue.h"   #include "interpret.h"
pike.git/src/module.c:347: Inside #if defined(DO_PIKE_CLEANUP)
     #ifdef DO_PIKE_CLEANUP    size_t count;       if (exit_with_cleanup) {    /* Destruct all remaining objects while we have a proper execution    * environment. The downside is that the leak report below will    * always report destructed objects. We use the gc in a special mode    * for this to get a reasonably sane destruct order. */    gc_destruct_everything = 1; -  exit_cleanup_in_progress = 1; /* Warn about object creation from now on. */ +     count = do_gc (NULL, 1);    while (count) {    size_t new_count = do_gc (NULL, 1);    if (new_count >= count) {    fprintf (stderr, "Some destroy function is creating new objects "    "during final cleanup - can't exit cleanly.\n");    break;    }    count = new_count;    }    gc_destruct_everything = 0; -  +  exit_cleanup_in_progress = 1; /* Warn about object creation from now on. */    }       /* Unload dynamic modules before static ones. */    exit_dynamic_load();   #endif       for(e=NELEM(module_list)-1;e>=0;e--)    {    if(SETJMP(recovery))    call_handle_error();    else {    TRACE((stderr, "Exiting static module #%d: \"%s\"...\n",    e, module_list[e].name));    module_list[e].exit();    }    UNSETJMP(recovery);    }   }