@typecheck(basestring, SessionId, basestring, (int, float))
    @logged()
    def confirm_should_finish(self, lab_coordaddress_str, lab_session_id, reservation_id, experiment_response):
        # If not reserved, don't try again
        try:
            current_status = self.get_reservation_status(reservation_id)
            if not isinstance(current_status, (coord_status.LocalReservedStatus, coord_status.RemoteReservedStatus)):
                return
        except CoordExc.CoordinatorError:
            return

        # 0: don't ask again
        if experiment_response == 0:
            return

        # -1: experiment finished
        if experiment_response < 0:
            self.finish_reservation(reservation_id)
            return

        # > 0: wait this time and ask again
        time.sleep(experiment_response)

        self.confirmer.enqueue_should_finish(lab_coordaddress_str, lab_session_id, reservation_id)
dataset/ETHPy150Open weblabdeusto/weblabdeusto/server/src/weblab/core/coordinator/coordinator.py/AbstractCoordinator.confirm_should_finish/original