Skip to content
Snippets Groups Projects
Commit e51099e7 authored by Daniela Genius's avatar Daniela Genius
Browse files

solved make problem

parent beb1d755
No related branches found
No related tags found
1 merge request!72Syscams
Showing
with 0 additions and 759 deletions
#include "Bell.h"
// Header code defined in the model
// End of header code defined in the model
#define STATE__START__STATE 0
#define STATE__Active 1
#define STATE__STOP__STATE 2
void *mainFunc__Bell(void *arg){
int __currentState = STATE__START__STATE;
__attribute__((unused)) request __req0;
__attribute__((unused))int *__params0[0];
__attribute__((unused))setOfRequests __list;
__attribute__((unused))pthread_cond_t __myCond;
__attribute__((unused))request *__returnRequest;
char * __myname = (char *)arg;
pthread_cond_init(&__myCond, NULL);
fillListOfRequests(&__list, __myname, &__myCond, &__mainMutex);
//printf("my name = %s\n", __myname);
/* Main loop on states */
while(__currentState != STATE__STOP__STATE) {
switch(__currentState) {
case STATE__START__STATE:
traceStateEntering(__myname, "__StartState");
__currentState = STATE__Active;
break;
case STATE__Active:
traceStateEntering(__myname, "Active");
makeNewRequest(&__req0, 45, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Controller_ringBell__Bell_ring;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__Active;
break;
}
}
//printf("Exiting = %s\n", __myname);
return NULL;
}
#ifndef Bell_H
#define Bell_H
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include "request.h"
#include "syncchannel.h"
#include "request_manager.h"
#include "debug.h"
#include "defs.h"
#include "mytimelib.h"
#include "random.h"
#include "tracemanager.h"
#include "main.h"
extern void *mainFunc__Bell(void *arg);
#endif
#include "ControlPanel.h"
// Header code defined in the model
// End of header code defined in the model
#define STATE__START__STATE 0
#define STATE__Active 1
#define STATE__STOP__STATE 2
void *mainFunc__ControlPanel(void *arg){
int duration = 5;
int __currentState = STATE__START__STATE;
__attribute__((unused)) request __req0;
__attribute__((unused))int *__params0[1];
__attribute__((unused))setOfRequests __list;
__attribute__((unused))pthread_cond_t __myCond;
__attribute__((unused))request *__returnRequest;
char * __myname = (char *)arg;
pthread_cond_init(&__myCond, NULL);
fillListOfRequests(&__list, __myname, &__myCond, &__mainMutex);
//printf("my name = %s\n", __myname);
/* Main loop on states */
while(__currentState != STATE__STOP__STATE) {
switch(__currentState) {
case STATE__START__STATE:
traceStateEntering(__myname, "__StartState");
__currentState = STATE__Active;
break;
case STATE__Active:
traceStateEntering(__myname, "Active");
__params0[0] = &duration;
makeNewRequest(&__req0, 52, SEND_ASYNC_REQUEST, 0, 0, 0, 1, __params0);
__req0.asyncChannel = &__ControlPanel_startButton__Controller_start;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__Active;
break;
}
}
//printf("Exiting = %s\n", __myname);
return NULL;
}
#ifndef ControlPanel_H
#define ControlPanel_H
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include "request.h"
#include "syncchannel.h"
#include "request_manager.h"
#include "debug.h"
#include "defs.h"
#include "mytimelib.h"
#include "random.h"
#include "tracemanager.h"
#include "main.h"
extern void *mainFunc__ControlPanel(void *arg);
#endif
#include "Controller.h"
// Header code defined in the model
// End of header code defined in the model
#define STATE__START__STATE 0
#define STATE__Starting 1
#define STATE__Heating 2
#define STATE__Idle 3
#define STATE__DoorOpened 4
#define STATE__DoorOpenedWhileHeating 5
#define STATE__STOP__STATE 6
void *mainFunc__Controller(void *arg){
int duration = 5;
int remainingTime = 0;
int __currentState = STATE__START__STATE;
__attribute__((unused)) request __req0;
__attribute__((unused))int *__params0[1];
__attribute__((unused)) request __req1;
__attribute__((unused))int *__params1[1];
__attribute__((unused)) request __req2;
__attribute__((unused))int *__params2[1];
__attribute__((unused))setOfRequests __list;
__attribute__((unused))pthread_cond_t __myCond;
__attribute__((unused))request *__returnRequest;
char * __myname = (char *)arg;
pthread_cond_init(&__myCond, NULL);
fillListOfRequests(&__list, __myname, &__myCond, &__mainMutex);
//printf("my name = %s\n", __myname);
/* Main loop on states */
while(__currentState != STATE__STOP__STATE) {
switch(__currentState) {
case STATE__START__STATE:
traceStateEntering(__myname, "__StartState");
__currentState = STATE__Idle;
break;
case STATE__Starting:
traceStateEntering(__myname, "Starting");
makeNewRequest(&__req0, 72, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Controller_startMagnetron__Magnetron_startM;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
remainingTime=duration;
traceVariableModification("Controller", "remainingTime", remainingTime,0);
__currentState = STATE__Heating;
break;
case STATE__Heating:
traceStateEntering(__myname, "Heating");
if (( remainingTime>0 )) {
makeNewRequest(&__req0, 87, IMMEDIATE, 1, (1)*1000, (1)*1000, 0, __params0);
addRequestToList(&__list, &__req0);
}
makeNewRequest(&__req1, 62, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params1);
__req1.asyncChannel = &__Door_open__Controller_open;
addRequestToList(&__list, &__req1);
if (( remainingTime==0 )) {
makeNewRequest(&__req2, 70, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params2);
__req2.asyncChannel = &__Controller_stopMagnetron__Magnetron_stopM;
addRequestToList(&__list, &__req2);
}
if (nbOfRequests(&__list) == 0) {
debug2Msg(__myname, "No possible request");
__currentState = STATE__STOP__STATE;
break;
}
__returnRequest = executeListOfRequests(&__list);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
if (__returnRequest == &__req0) {
remainingTime= remainingTime -1;
traceVariableModification("Controller", "remainingTime", remainingTime,0);
__currentState = STATE__Heating;
}
else if (__returnRequest == &__req1) {
makeNewRequest(&__req0, 69, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Controller_stopMagnetron__Magnetron_stopM;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
makeNewRequest(&__req0, 58, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_okDoor__Controller_okDoor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__DoorOpenedWhileHeating;
}
else if (__returnRequest == &__req2) {
makeNewRequest(&__req0, 64, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Controller_ringBell__Bell_ring;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__Idle;
}
break;
case STATE__Idle:
traceStateEntering(__myname, "Idle");
makeNewRequest(&__req0, 65, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_open__Controller_open;
addRequestToList(&__list, &__req0);
__params1[0] = &duration;
makeNewRequest(&__req1, 67, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 1, __params1);
__req1.asyncChannel = &__ControlPanel_startButton__Controller_start;
addRequestToList(&__list, &__req1);
if (nbOfRequests(&__list) == 0) {
debug2Msg(__myname, "No possible request");
__currentState = STATE__STOP__STATE;
break;
}
__returnRequest = executeListOfRequests(&__list);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
if (__returnRequest == &__req0) {
makeNewRequest(&__req0, 60, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_okDoor__Controller_okDoor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__DoorOpened;
}
else if (__returnRequest == &__req1) {
__currentState = STATE__Starting;
}
break;
case STATE__DoorOpened:
traceStateEntering(__myname, "DoorOpened");
makeNewRequest(&__req0, 74, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_closed__Controller_closed;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
makeNewRequest(&__req0, 59, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_okDoor__Controller_okDoor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__Idle;
break;
case STATE__DoorOpenedWhileHeating:
traceStateEntering(__myname, "DoorOpenedWhileHeating");
makeNewRequest(&__req0, 73, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_closed__Controller_closed;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
makeNewRequest(&__req0, 57, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_okDoor__Controller_okDoor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
makeNewRequest(&__req0, 71, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Controller_startMagnetron__Magnetron_startM;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__Heating;
break;
}
}
//printf("Exiting = %s\n", __myname);
return NULL;
}
#ifndef Controller_H
#define Controller_H
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include "request.h"
#include "syncchannel.h"
#include "request_manager.h"
#include "debug.h"
#include "defs.h"
#include "mytimelib.h"
#include "random.h"
#include "tracemanager.h"
#include "main.h"
extern void *mainFunc__Controller(void *arg);
#endif
#include "Door.h"
// Header code defined in the model
// End of header code defined in the model
#define STATE__START__STATE 0
#define STATE__DoorIsOpened 1
#define STATE__IDLE 2
#define STATE__STOP__STATE 3
void *mainFunc__Door(void *arg){
int __currentState = STATE__START__STATE;
__attribute__((unused)) request __req0;
__attribute__((unused))int *__params0[0];
__attribute__((unused))setOfRequests __list;
__attribute__((unused))pthread_cond_t __myCond;
__attribute__((unused))request *__returnRequest;
char * __myname = (char *)arg;
pthread_cond_init(&__myCond, NULL);
fillListOfRequests(&__list, __myname, &__myCond, &__mainMutex);
//printf("my name = %s\n", __myname);
/* Main loop on states */
while(__currentState != STATE__STOP__STATE) {
switch(__currentState) {
case STATE__START__STATE:
traceStateEntering(__myname, "__StartState");
__currentState = STATE__IDLE;
break;
case STATE__DoorIsOpened:
traceStateEntering(__myname, "DoorIsOpened");
waitFor((2)*1000, (4)*1000);
makeNewRequest(&__req0, 113, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_closed__Controller_closed;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
makeNewRequest(&__req0, 110, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_okDoor__Controller_okDoor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
waitFor((2)*1000, (4)*1000);
__currentState = STATE__IDLE;
break;
case STATE__IDLE:
traceStateEntering(__myname, "IDLE");
makeNewRequest(&__req0, 114, SEND_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_open__Controller_open;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
makeNewRequest(&__req0, 111, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Door_okDoor__Controller_okDoor;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__DoorIsOpened;
break;
}
}
//printf("Exiting = %s\n", __myname);
return NULL;
}
#ifndef Door_H
#define Door_H
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include "request.h"
#include "syncchannel.h"
#include "request_manager.h"
#include "debug.h"
#include "defs.h"
#include "mytimelib.h"
#include "random.h"
#include "tracemanager.h"
#include "main.h"
extern void *mainFunc__Door(void *arg);
#endif
#include "Magnetron.h"
// Header code defined in the model
// End of header code defined in the model
#define STATE__START__STATE 0
#define STATE__Running 1
#define STATE__WaitForStart 2
#define STATE__STOP__STATE 3
void *mainFunc__Magnetron(void *arg){
int power = 0;
int __currentState = STATE__START__STATE;
__attribute__((unused)) request __req0;
__attribute__((unused))int *__params0[0];
__attribute__((unused))setOfRequests __list;
__attribute__((unused))pthread_cond_t __myCond;
__attribute__((unused))request *__returnRequest;
char * __myname = (char *)arg;
pthread_cond_init(&__myCond, NULL);
fillListOfRequests(&__list, __myname, &__myCond, &__mainMutex);
//printf("my name = %s\n", __myname);
/* Main loop on states */
while(__currentState != STATE__STOP__STATE) {
switch(__currentState) {
case STATE__START__STATE:
traceStateEntering(__myname, "__StartState");
__currentState = STATE__WaitForStart;
break;
case STATE__Running:
traceStateEntering(__myname, "Running");
makeNewRequest(&__req0, 100, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Controller_stopMagnetron__Magnetron_stopM;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__WaitForStart;
break;
case STATE__WaitForStart:
traceStateEntering(__myname, "WaitForStart");
makeNewRequest(&__req0, 102, RECEIVE_ASYNC_REQUEST, 0, 0, 0, 0, __params0);
__req0.asyncChannel = &__Controller_startMagnetron__Magnetron_startM;
__returnRequest = executeOneRequest(&__list, &__req0);
clearListOfRequests(&__list);
traceRequest(__myname, __returnRequest);
__currentState = STATE__Running;
break;
}
}
//printf("Exiting = %s\n", __myname);
return NULL;
}
#ifndef Magnetron_H
#define Magnetron_H
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include "request.h"
#include "syncchannel.h"
#include "request_manager.h"
#include "debug.h"
#include "defs.h"
#include "mytimelib.h"
#include "random.h"
#include "tracemanager.h"
#include "main.h"
extern void *mainFunc__Magnetron(void *arg);
#endif
objs = main.o MicroWaveOven.o Bell.o ControlPanel.o Controller.o Magnetron.o Door.o
\ No newline at end of file
#include "MicroWaveOven.h"
// Header code defined in the model
// End of header code defined in the model
#define STATE__START__STATE 0
#define STATE__Running 1
#define STATE__STOP__STATE 2
void *mainFunc__MicroWaveOven(void *arg){
int __currentState = STATE__START__STATE;
__attribute__((unused)) request __req0;
__attribute__((unused))int *__params0[0];
__attribute__((unused))setOfRequests __list;
__attribute__((unused))pthread_cond_t __myCond;
__attribute__((unused))request *__returnRequest;
char * __myname = (char *)arg;
pthread_cond_init(&__myCond, NULL);
fillListOfRequests(&__list, __myname, &__myCond, &__mainMutex);
//printf("my name = %s\n", __myname);
/* Main loop on states */
while(__currentState != STATE__STOP__STATE) {
switch(__currentState) {
case STATE__START__STATE:
traceStateEntering(__myname, "__StartState");
__currentState = STATE__Running;
break;
case STATE__Running:
traceStateEntering(__myname, "Running");
__currentState = STATE__STOP__STATE;
break;
}
}
//printf("Exiting = %s\n", __myname);
return NULL;
}
#ifndef MicroWaveOven_H
#define MicroWaveOven_H
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include "request.h"
#include "syncchannel.h"
#include "request_manager.h"
#include "debug.h"
#include "defs.h"
#include "mytimelib.h"
#include "random.h"
#include "tracemanager.h"
#include "main.h"
extern void *mainFunc__MicroWaveOven(void *arg);
#endif
%set OUTPUT_NAME avatar
# New source code module to be compiled
%append MODULES $(OUTPUT_NAME):$(CONFIGPATH)
# Application license
CONFIG_LICENSE_APP_LGPL
# Libs
CONFIG_PTHREAD
CONFIG_PTHREAD_MAIN
CONFIG_PTHREAD_TIME
#ajoute DG
CONFIG_PTHREAD_ATTRIBUTES
#ajoute DG
CONFIG_PTHREAD_STACK_SIZE 32768
CONFIG_LIBC_STREAM_STD
# CONFIG_MUTEK_TIMER undefined
CONFIG_LIBAVATAR
CONFIG_HEXO_INTTYPES_DEPRECATED undefined
CONFIG_LIBM
CONFIG_LIBC_STREAM
CONFIG_VFS
#ajoute DG
CONFIG_MWMR
CONFIG_MWMR_SOCLIB
#fin ajoute DG
CONFIG_MUTEK_SCHEDULER_STATIC
%include $(SRC_DIR)/examples/common/build_options.conf
%include $(SRC_DIR)/examples/common/platforms.conf
# inter-processor interrupts
CONFIG_HEXO_IPI
# CONFIG_ARCH_SMP undefined
CONFIG_CPU_MAXCOUNT 5
#include <stdio.h>
#include <pthread.h>
#include <unistd.h>
#include <stdlib.h>
#include "request.h"
#include "syncchannel.h"
#include "request_manager.h"
#include "debug.h"
#include "random.h"
#include "tracemanager.h"
/* User code */
void __user_init() {
}
/* End of User code */
/* Main mutex */
pthread_mutex_t __mainMutex;
/* Synchronous channels */
/* Asynchronous channels */
asyncchannel __Controller_ringBell__Bell_ring;
asyncchannel __Door_okDoor__Controller_okDoor;
asyncchannel __Door_open__Controller_open;
asyncchannel __Door_closed__Controller_closed;
asyncchannel __Controller_startMagnetron__Magnetron_startM;
asyncchannel __Controller_stopMagnetron__Magnetron_stopM;
asyncchannel __ControlPanel_LEDOn__Controller_startCooking;
asyncchannel __ControlPanel_LEDoff__Controller_stopCooking;
asyncchannel __ControlPanel_startButton__Controller_start;
#include "MicroWaveOven.h"
#include "Bell.h"
#include "ControlPanel.h"
#include "Controller.h"
#include "Magnetron.h"
#include "Door.h"
int main(int argc, char *argv[]) {
/* disable buffering on stdout */
setvbuf(stdout, NULL, _IONBF, 0);
/* Synchronous channels */
/* Asynchronous channels */
__Controller_ringBell__Bell_ring.inname ="ring";
__Controller_ringBell__Bell_ring.outname ="ringBell";
__Controller_ringBell__Bell_ring.isBlocking = 0;
__Controller_ringBell__Bell_ring.maxNbOfMessages = 4;
__Door_okDoor__Controller_okDoor.inname ="okDoor";
__Door_okDoor__Controller_okDoor.outname ="okDoor";
__Door_okDoor__Controller_okDoor.isBlocking = 0;
__Door_okDoor__Controller_okDoor.maxNbOfMessages = 4;
__Door_open__Controller_open.inname ="open";
__Door_open__Controller_open.outname ="open";
__Door_open__Controller_open.isBlocking = 0;
__Door_open__Controller_open.maxNbOfMessages = 4;
__Door_closed__Controller_closed.inname ="closed";
__Door_closed__Controller_closed.outname ="closed";
__Door_closed__Controller_closed.isBlocking = 0;
__Door_closed__Controller_closed.maxNbOfMessages = 4;
__Controller_startMagnetron__Magnetron_startM.inname ="startM";
__Controller_startMagnetron__Magnetron_startM.outname ="startMagnetron";
__Controller_startMagnetron__Magnetron_startM.isBlocking = 0;
__Controller_startMagnetron__Magnetron_startM.maxNbOfMessages = 4;
__Controller_stopMagnetron__Magnetron_stopM.inname ="stopM";
__Controller_stopMagnetron__Magnetron_stopM.outname ="stopMagnetron";
__Controller_stopMagnetron__Magnetron_stopM.isBlocking = 0;
__Controller_stopMagnetron__Magnetron_stopM.maxNbOfMessages = 4;
__ControlPanel_LEDOn__Controller_startCooking.inname ="LEDOn";
__ControlPanel_LEDOn__Controller_startCooking.outname ="startCooking";
__ControlPanel_LEDOn__Controller_startCooking.isBlocking = 1;
__ControlPanel_LEDOn__Controller_startCooking.maxNbOfMessages = 1;
__ControlPanel_LEDoff__Controller_stopCooking.inname ="LEDoff";
__ControlPanel_LEDoff__Controller_stopCooking.outname ="stopCooking";
__ControlPanel_LEDoff__Controller_stopCooking.isBlocking = 1;
__ControlPanel_LEDoff__Controller_stopCooking.maxNbOfMessages = 1;
__ControlPanel_startButton__Controller_start.inname ="start";
__ControlPanel_startButton__Controller_start.outname ="startButton";
__ControlPanel_startButton__Controller_start.isBlocking = 1;
__ControlPanel_startButton__Controller_start.maxNbOfMessages = 1;
/* Threads of tasks */
pthread_t thread__MicroWaveOven;
pthread_t thread__Bell;
pthread_t thread__ControlPanel;
pthread_t thread__Controller;
pthread_t thread__Magnetron;
pthread_t thread__Door;
/* Activating tracing */
if (argc>1){
activeTracingInFile(argv[1]);
} else {
activeTracingInConsole();
}
/* Activating randomness */
initRandom();
/* Initializing the main mutex */
if (pthread_mutex_init(&__mainMutex, NULL) < 0) { exit(-1);}
/* Initializing mutex of messages */
initMessages();
/* User initialization */
__user_init();
pthread_create(&thread__MicroWaveOven, NULL, mainFunc__MicroWaveOven, (void *)"MicroWaveOven");
pthread_create(&thread__Bell, NULL, mainFunc__Bell, (void *)"Bell");
pthread_create(&thread__ControlPanel, NULL, mainFunc__ControlPanel, (void *)"ControlPanel");
pthread_create(&thread__Controller, NULL, mainFunc__Controller, (void *)"Controller");
pthread_create(&thread__Magnetron, NULL, mainFunc__Magnetron, (void *)"Magnetron");
pthread_create(&thread__Door, NULL, mainFunc__Door, (void *)"Door");
pthread_join(thread__MicroWaveOven, NULL);
pthread_join(thread__Bell, NULL);
pthread_join(thread__ControlPanel, NULL);
pthread_join(thread__Controller, NULL);
pthread_join(thread__Magnetron, NULL);
pthread_join(thread__Door, NULL);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment