Fixed memory leak inside ComlibStrategy/OneTimeMulticastStrategy. The message would
[charm.git] / src / ck-com / ComlibModuleInterface.C
1 /**
2    @addtogroup CharmComlib
3    @{
4    @file
5    This file is compiled and linked into all Charm++ programs, 
6    even those that do not use -module comlib. Thus, a few functions
7    are implemented here that are referenced from parts of the charm++ 
8    core. These functions can handle both the case where the comlib
9    module is used and where it is not used.
10 */
11
12 #include "ComlibStrategy.h"
13
14 //calls ComlibNotifyMigrationDone(). Even compiles when -module comlib
15 //is not included. Hack to make loadbalancer work without comlib
16 //currently.
17 CkpvDeclare(int, migrationDoneHandlerID);
18
19
20 void ComlibNotifyMigrationDone() {
21     if(CkpvInitialized(migrationDoneHandlerID)) 
22         if(CkpvAccess(migrationDoneHandlerID) > 0) {
23             char *msg = (char *)CmiAlloc(CmiReservedHeaderSize);
24             CmiSetHandler(msg, CkpvAccess(migrationDoneHandlerID));
25 #if CMK_BLUEGENE_CHARM
26             // bluegene charm should avoid directly calling converse
27             CmiSyncSendAndFree(CkMyPe(), CmiReservedHeaderSize, msg);
28 #else
29             CmiHandleMessage(msg);
30 #endif
31         }
32 }
33
34 /*@}*/