Conversation
No client em vez de dar erro ao abrir o fifo publico manda mensagem de CLOSD e o server apanha do fifo publico os pedidos que faltam. Caso não haja pedidos em falta não vai mandar 2LATE |
Nunca vamos ter 2LATE porque como é dado unlink logo a seguir ao ciclo o programa client vai tentar escrever no fifo publico e não vai conseguir -> CLOSD. // while loop to check running time
while(elapsedTime() < (double) nsecs){
// while loop to check public fifo
if(read(fd_pub,&clientRequest,BUFSIZE)<=0){ continue;}
// create thread with contents of public fifo
if(pthread_create(&tid, NULL, thread_func, &clientRequest)!=0){perror("Server-pthread_Create");}
if(pthread_detach(tid)!=0){perror("Server-pthread_detach");}
}
// closing sequence
if(unlink(fifopath)==-1){perror("Error destroying public fifo:");}O que é extremamente improvável |
|
Parece-me tudo bem, quanto ao 2LATE acho que nesta segunda parte já vai ser mais provavel acontecer porque por exemplo imagina que temos 10 pedidos à espera de uma resposta com o lugar (porque estao todos ocupados), se a WC fechar entretanto já nao vai atribuir mais,ou seja, esses pedidos todos vao ser 2LATE certo? |
|
Vai depender de como se vai tratar dos pedidos que não tenham um lugar livre imediato. Se forem rejeitados automaticamente, não vai haver 2LATE's. Caso fiquem numa fila e esperem resposta pode ser que se mandem 2LATE's no final. |
No enunciado diz que temos de esperar, portanto não se pode rejeitar logo, acho que faz sentido quando a WC fechar enviar essa informaçao para o cliente, o cliente imprime um CLOSD e depois o servidor imprime um 2LATE |
|
Se o tempo for menor do restante para a WC fechar, rejeita-se logo, caso contrário coloca-se numa fila e caso chegue a vez dele já passar da hora manda-se 2LATE (ou quando fechar a WC manda a todos os que estão na fila) |
Estás a falar do tempo de uso? não entendi
Assim que estiver na fila quer dizer que servidor manda a flag RECVD, nesta altura ele já está dentro da loja e então terá de ter um lugar, demore o tempo que demorar, acho que não podemos dar 2LATE para estes, apenas os pedidos que chegam depois de o WC fechar. Ou seja,
@filipeeteixeira
|
Estava a pensar mal, mas sendo assim pode haver quem entre e utilize a casa de banho mesmo depois de ela ter fechado, correto? (Para quem já estava na fila na hora de fecho) |
|
Yes, a casa de banho pode estar fechada (não são criadas threads novas no server) e podem haver threads server a tratar de um pedido |
No description provided.