private void handleRequest() {
        while (!requests.isEmpty()) {
            final ReActivationInfo info = requests.poll();
            if (info.mode == ActivationMode.NEWOPS) {
                try {
                    info.state.key.interestOps(info.state.key.interestOps() | info.newInterestOps);
                } catch (CancelledKeyException e) { }
            } else if (info.mode == ActivationMode.REGISTER) {
                try {
                    info.state.key = info.state.channel.register(selector, info.newInterestOps, info.state);
                } catch (ClosedChannelException e) { }
            } else if (info.mode == ActivationMode.CLOSE) {
                info.state.key.cancel();
                try {
                    info.state.channel.close();
                } catch (IOException e) { }
            } else if (info.mode == ActivationMode.CLEAROPS) {
                try {
                    info.state.key.interestOps(info.state.key.interestOps() & ~info.newInterestOps);
                } catch (CancelledKeyException e) { }
            }
        }
    }