Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VSs_impls > VSs__MC_shared_impl
comparison VSs.c @ 21:feea343d202f
add support for more OmpSs features
| author | Nina Engelhardt <nengel@mailbox.tu-berlin.de> |
|---|---|
| date | Mon, 29 Oct 2012 16:57:56 +0100 |
| parents | a7ca8f45c1c4 |
| children | b787a5234406 |
comparison
equal
deleted
inserted
replaced
| 17:df00a0c69d9a | 18:f5259b2f160f |
|---|---|
| 251 semanticEnv->fnSingletons[i].endInstrAddr = NULL; | 251 semanticEnv->fnSingletons[i].endInstrAddr = NULL; |
| 252 semanticEnv->fnSingletons[i].hasBeenStarted = FALSE; | 252 semanticEnv->fnSingletons[i].hasBeenStarted = FALSE; |
| 253 semanticEnv->fnSingletons[i].hasFinished = FALSE; | 253 semanticEnv->fnSingletons[i].hasFinished = FALSE; |
| 254 semanticEnv->fnSingletons[i].waitQ = makeVMSQ(); | 254 semanticEnv->fnSingletons[i].waitQ = makeVMSQ(); |
| 255 semanticEnv->transactionStrucs[i].waitingVPQ = makeVMSQ(); | 255 semanticEnv->transactionStrucs[i].waitingVPQ = makeVMSQ(); |
| 256 semanticEnv->criticalSection[i].isOccupied = FALSE; | |
| 257 semanticEnv->criticalSection[i].waitQ = makeVMSQ(); | |
| 258 #ifdef HOLISTIC__TURN_ON_PERF_COUNTERS | |
| 259 semanticEnv->criticalSection[i].previous.vp = 0; | |
| 260 semanticEnv->criticalSection[i].previous.task = 0; | |
| 261 #endif | |
| 256 } | 262 } |
| 257 | 263 |
| 258 semanticEnv->numLiveExtraTaskSlvs = 0; //must be last | 264 semanticEnv->numLiveExtraTaskSlvs = 0; //must be last |
| 259 semanticEnv->numLiveThreadSlvs = 1; //must be last, counts the seed | 265 semanticEnv->numLiveThreadSlvs = 1; //must be last, counts the seed |
| 260 | 266 |
| 541 reqData.callingSlv = animSlv; | 547 reqData.callingSlv = animSlv; |
| 542 | 548 |
| 543 VMS_WL__send_sem_request( &reqData, animSlv ); | 549 VMS_WL__send_sem_request( &reqData, animSlv ); |
| 544 } | 550 } |
| 545 | 551 |
| 546 | 552 void |
| 553 VSs__taskwait_on(SlaveVP *animSlv,void* ptr){ | |
| 554 VSsSemReq reqData; | |
| 555 | |
| 556 reqData.reqType = taskwait_on; | |
| 557 reqData.callingSlv = animSlv; | |
| 558 | |
| 559 reqData.args = ptr; | |
| 560 | |
| 561 VMS_WL__send_sem_request( &reqData, animSlv ); | |
| 562 } | |
| 563 | |
| 564 void | |
| 565 VSs__start_critical(SlaveVP *animSlv,int32 name){ | |
| 566 VSsSemReq reqData; | |
| 567 | |
| 568 reqData.reqType = critical_start; | |
| 569 reqData.callingSlv = animSlv; | |
| 570 | |
| 571 reqData.criticalID = name; | |
| 572 | |
| 573 VMS_WL__send_sem_request( &reqData, animSlv ); | |
| 574 } | |
| 575 | |
| 576 void | |
| 577 VSs__end_critical(SlaveVP *animSlv,int32 name){ | |
| 578 VSsSemReq reqData; | |
| 579 | |
| 580 reqData.reqType = critical_end; | |
| 581 reqData.callingSlv = animSlv; | |
| 582 | |
| 583 reqData.criticalID = name; | |
| 584 | |
| 585 VMS_WL__send_sem_request( &reqData, animSlv ); | |
| 586 } | |
| 547 | 587 |
| 548 //========================== send and receive ============================ | 588 //========================== send and receive ============================ |
| 549 // | 589 // |
| 550 | 590 |
| 551 int32 * | 591 int32 * |
