/** * 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); }