示例#1
0
文件: cms.c 项目: davidheryanto/sc14
static void response(void *msg)
{
    char *r, *m;
    int size, ref;
    m = (char *) msg + CmiMsgHeaderSizeBytes;
    size = *((int *) m);
    m += sizeof(int);
    ref = *((int *) m);
    m += sizeof(int);
    r = (char *) malloc(size);
    memcpy(r, m, size);
    if (CpvAccess(consumerFunction) == 0) {
	CpvAccess(responses)[ref].ref = ref;
	CpvAccess(responses)[ref].response = r;
    } else {
	CpvAccess(consumerFunction) (r, ref);
    }

    if (--CpvAccess(counter) == 0) {
	CsdExitScheduler();
    }
}
示例#2
0
extern "C" void exit_sched(void* msg)
{
  //  CmiPrintf("Exiting scheduler on %d\n",CmiMyPe());
  CsdExitScheduler();
}
示例#3
0
CmiHandler exitHandlerFunc(char *msg)
{
    CmiFree(msg);
    CsdExitScheduler();
    return 0;
}
示例#4
0
文件: cms.c 项目: davidheryanto/sc14
static void stopHandler(void *msg)
{
    CsdExitScheduler();
    ConverseExit();
}