00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "send.h"
00025 #include "worker.h"
00026 #include "schema.h"
00027 #include "comm.h"
00028 #include "scheduler.h"
00029 #include "../../core/peo_debug.h"
00030
00031 static std :: vector <pthread_t *> ll_threads;
00032
00033 void runRMC () {
00034
00035
00036 for (unsigned i = 0; i < my_node -> num_workers; i ++)
00037 addThread (new Worker, ll_threads);
00038
00039 wakeUpCommunicator ();
00040 }
00041
00042 void initRMC (int & __argc, char * * & __argv) {
00043
00044
00045 initCommunication ();
00046 addThread (new Communicator (& __argc, & __argv), ll_threads);
00047 waitNodeInitialization ();
00048 initSending ();
00049
00050
00051 if (isScheduleNode ())
00052 initScheduler ();
00053
00055 }
00056
00057 void finalizeRMC () {
00058
00059 printDebugMessage ("before join threads RMC");
00060 joinThreads (ll_threads);
00061 printDebugMessage ("after join threads RMC");
00062 }