23 package com.realtime.crossfire.jxclient.sound;
26 import java.util.concurrent.Callable;
27 import java.util.concurrent.CompletionService;
28 import java.util.concurrent.ExecutionException;
29 import java.util.concurrent.ExecutorCompletionService;
30 import java.util.concurrent.ExecutorService;
31 import java.util.concurrent.Executors;
32 import java.util.concurrent.Future;
33 import java.util.concurrent.Semaphore;
34 import javax.sound.sampled.DataLine;
35 import org.jetbrains.annotations.NotNull;
36 import org.jetbrains.annotations.Nullable;
105 public void play(@NotNull
final CharSequence action) {
125 while (!Thread.currentThread().isInterrupted()) {
126 final Future<@Nullable Task> future;
129 }
catch (
final InterruptedException ignored) {
130 Thread.currentThread().interrupt();
137 }
catch (
final InterruptedException ex) {
138 Thread.currentThread().interrupt();
143 }
catch (
final ExecutionException ex) {
171 public void shutdown() throws InterruptedException {
197 private final int id;
219 subId = parent.subId+1;
225 return id+
"."+
subId+
"/"+getClass().getSimpleName();
258 final long t0 = System.currentTimeMillis();
409 final long t0 = System.currentTimeMillis();