Start and Restart Server work

This commit is contained in:
Raphael Benistant 2020-03-29 09:29:21 +02:00
parent 4826ac1aeb
commit 9adc001ccf

View file

@ -281,7 +281,8 @@ void Tasks::Join() {
rt_sem_broadcast(&sem_barrier);
//Initialization for some specific sem: Allow to run the first time
rt_sem_broadcast(&sem_restart);
//rt_sem_broadcast(&sem_restart);
pause();
}
@ -292,13 +293,10 @@ void Tasks::ServerTask(void *arg) {
int status;
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
// Synchronization barrier (waiting that all tasks are started)
rt_sem_p(&sem_barrier, TM_INFINITE);
while(1){
//First time it's okay after it's managed by receiveFromMon
//rt_sem_p(&sem_restart, TM_INFINITE);
// Synchronization barrier (waiting that all tasks are started)
rt_sem_p(&sem_barrier, TM_INFINITE);
/**************************************************************************************/
/* The task server starts here */
@ -329,18 +327,17 @@ void Tasks::SendToMonTask(void* arg) {
// Synchronization barrier (waiting that all tasks are starting)
rt_sem_p(&sem_barrier, TM_INFINITE);
while(1){
//rt_sem_p(&sem_restart, TM_INFINITE);
//Initialize the loop condition
rt_mutex_acquire(&mutex_killSendMon, TM_INFINITE);
killSendMon=0; // The message is deleted with the Write
rt_mutex_release(&mutex_killSendMon);
//while(1){
/**************************************************************************************/
/* The task sendToMon starts here */
/**************************************************************************************/
rt_sem_p(&sem_serverOk, TM_INFINITE);
//Initialize the loop condition
rt_mutex_acquire(&mutex_killSendMon, TM_INFINITE);
killSendMon=0; // The message is deleted with the Write
rt_mutex_release(&mutex_killSendMon);
while (!kill_sendToMonOk) {
cout << "wait msg to send" << endl << flush;
@ -355,7 +352,7 @@ void Tasks::SendToMonTask(void* arg) {
rt_mutex_release(&mutex_killSendMon);
}
}
//}
}
/**
@ -369,7 +366,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
// Synchronization barrier (waiting that all tasks are starting)
rt_sem_p(&sem_barrier, TM_INFINITE);
while(1){
//while(1){
//rt_sem_p(&sem_restart,TM_INFINITE);
@ -419,7 +416,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
//Restart all the process
Tasks::Join();
rt_sem_v(&sem_restart);
//rt_sem_v(&sem_restart);
//exit(-1);
@ -513,7 +510,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
rt_mutex_release(&mutex_killReceiveFromMon);
}
}
//}
}
/**
@ -522,7 +519,7 @@ void Tasks::ReceiveFromMonTask(void *arg) {
void Tasks::OpenComRobot(void *arg) {
int status;
int err;
bool killOpenComRobotOk = 0;
//bool killOpenComRobotOk = 0;
cout << "Start " << __PRETTY_FUNCTION__ << endl << flush;
// Synchronization barrier (waiting that all tasks are starting)