@Override
    public void run() {
        while (monitor.isAlive()) {
            inputSemaphore.take();
            switch (input.getChoice()) {
                case ClockInput.SET_TIME:
                    setTime = input.getValue();
                    break;
                case ClockInput.SET_ALARM:
                    monitor.setAlarm(input.getValue());
                    setTime = -1;
                    break;
                case ClockInput.SHOW_TIME:
                    if (setTime > -1) {
                        monitor.setTime(setTime);
                        setTime = -1;
                    }
                    monitor.disableAlarm();
                    break;
            }
        }
    }