// enter the dfa with character x at state state int enter(char x, int state){ switch (state){ case 0: return enter0(x); case 1: return enter1(x); case 2: return enter2(x); case 3: return enter3(x); defaut: return -1; } }
void sendRequest(request_t request){ int flag = 1; printf("le envio al client: %d req: %d\n", request.PID, request.reqID); while(flag){ enter1(); if(reqC->reqID == EMPTY ){ reqC->price = request.price; memcpy(reqC, &request, sizeof request); flag = 0; } leave1(); sleep(1); } }
request_t receiveRequest(){ int flag = 1; request_t request; printf("leyendo desde: %p\n", reqS); while ( flag ) { enter1(); if ( reqS->reqID != EMPTY ) { printf("Servidor recibe: %d\n", reqS->reqID); memcpy(&request, reqS, sizeof request); reqS->reqID = EMPTY; flag = 0; } leave1(); sleep(1); } return request; }