40 * number of aborted timed waits occur without a signal. |
40 * number of aborted timed waits occur without a signal. |
41 */ |
41 */ |
42 |
42 |
43 import java.util.concurrent.ArrayBlockingQueue; |
43 import java.util.concurrent.ArrayBlockingQueue; |
44 import java.util.concurrent.BlockingQueue; |
44 import java.util.concurrent.BlockingQueue; |
|
45 import java.util.concurrent.LinkedBlockingDeque; |
45 import java.util.concurrent.LinkedBlockingQueue; |
46 import java.util.concurrent.LinkedBlockingQueue; |
46 import java.util.concurrent.LinkedTransferQueue; |
47 import java.util.concurrent.LinkedTransferQueue; |
47 import java.util.concurrent.SynchronousQueue; |
48 import java.util.concurrent.SynchronousQueue; |
48 import java.util.concurrent.TimeUnit; |
49 import java.util.concurrent.TimeUnit; |
49 |
50 |
50 public class PollMemoryLeak { |
51 public class PollMemoryLeak { |
51 public static void main(String[] args) throws InterruptedException { |
52 public static void main(String[] args) throws InterruptedException { |
52 final BlockingQueue[] qs = { |
53 final BlockingQueue[] qs = { |
|
54 new LinkedBlockingDeque(10), |
53 new LinkedBlockingQueue(10), |
55 new LinkedBlockingQueue(10), |
54 new LinkedTransferQueue(), |
56 new LinkedTransferQueue(), |
55 new ArrayBlockingQueue(10), |
57 new ArrayBlockingQueue(10), |
|
58 new ArrayBlockingQueue(10, true), |
56 new SynchronousQueue(), |
59 new SynchronousQueue(), |
57 new SynchronousQueue(true), |
60 new SynchronousQueue(true), |
58 }; |
61 }; |
59 final long start = System.currentTimeMillis(); |
62 final long start = System.currentTimeMillis(); |
60 final long end = start + 10 * 1000; |
63 final long end = start + 10 * 1000; |