ThreadedIO.java 649 B

12345678910111213141516171819202122232425262728293031323334
  1. package com.oblivm.backend.network;
  2. import java.io.OutputStream;
  3. public class ThreadedIO implements Runnable {
  4. public CustomizedConcurrentQueue queue;
  5. OutputStream os;
  6. public ThreadedIO(CustomizedConcurrentQueue queue2, OutputStream os) {
  7. this.queue = queue2;
  8. this.os = os;
  9. }
  10. byte[] res = new byte[Network.NetworkThreadedQueueSize];
  11. public void run() {
  12. try {
  13. while (true) {
  14. int len = queue.pop(res);
  15. if (len == -1)
  16. return;
  17. if (len != 0) {
  18. os.write(res, 0, len);
  19. os.flush();
  20. }
  21. }
  22. } catch (Exception e) {
  23. // TODO Auto-generated catch block
  24. e.printStackTrace();
  25. System.exit(1);
  26. }
  27. }
  28. }