Esempio n. 1
0
 /**
  * Troca processo de status
  *
  * @param Processo $processo
  * @param String $status_novo
  */
 public function troca_status(Processo $processo, $status_novo)
 {
     if ($status_novo == 'BLOCK') {
         printf('Tempo %d: Processo id: %d foi bloqueado' . QUEBRA, $this->time, $processo->get_id());
         unset($this->filas[$processo->get_fila()][$processo->get_id()]);
     } elseif ($processo->get_status() === 'BLOCK' && $status_novo === 'READY') {
         printf('Tempo %d: Processo id: %d passou %dms bloqueado' . QUEBRA, $this->time, $processo->get_id(), $processo->get_time_blocked());
         $this->set_fila($processo);
     }
     $status_ant = $processo->get_status();
     //Remove da lista de status
     unset($this->status[$status_ant][$processo->get_id()]);
     //Adiciona na lista de status
     $processo->set_status($status_novo);
     $this->set_status($processo);
 }