- simplify multithreading in VideoRecorderAppState

git-svn-id: https://jmonkeyengine.googlecode.com/svn/trunk@8714 75d07b2b-3a1a-0410-a2c5-0572b91ccdca
3.0
nor..67 13 years ago
parent 04e348f0fb
commit 69e691872d
  1. 21
      engine/src/desktop/com/jme3/app/state/VideoRecorderAppState.java

@ -46,15 +46,6 @@ public class VideoRecorderAppState extends AbstractAppState {
return th; return th;
} }
}); });
private ExecutorService writeThread = Executors.newSingleThreadExecutor(new ThreadFactory() {
public Thread newThread(Runnable r) {
Thread th = new Thread(r);
th.setName("jME Video Writing Thread");
th.setDaemon(true);
return th;
}
});
private int numCpus = Runtime.getRuntime().availableProcessors(); private int numCpus = Runtime.getRuntime().availableProcessors();
public VideoRecorderAppState(File file) { public VideoRecorderAppState(File file) {
@ -125,17 +116,11 @@ public class VideoRecorderAppState extends AbstractAppState {
Screenshots.convertScreenShot(item.buffer, item.image); Screenshots.convertScreenShot(item.buffer, item.image);
item.data = writer.writeImageToBytes(item.image); item.data = writer.writeImageToBytes(item.image);
while (usedItems.peek() != item) { while (usedItems.peek() != item) {
Thread.sleep(5); Thread.sleep(1);
} }
writeThread.submit(new Callable<Void>() { writer.addImage(item.data);
public Void call() throws Exception {
writer.addImage(item.data);
freeItems.add(item);
return null;
}
});
usedItems.poll(); usedItems.poll();
freeItems.add(item);
return null; return null;
} }
}); });

Loading…
Cancel
Save