@Override
	public void run() {
		while (channel != null) {
			long start = System.currentTimeMillis();
			try {
				buffer.flip();
				channel.write(buffer);
			} catch (IOException e) {
				e.printStackTrace();
			}
			long elapsed = UnblockingNetwork.getCycleRate()
					- (System.currentTimeMillis() - start);
			if (elapsed > 0) {
				try {
					Thread.sleep(elapsed);
				} catch (InterruptedException e) {
					return;
				}
			}
		}
	}