summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErik De Rijcke <Erik.De.Rijcke@prodatamobility.com>2015-03-17 14:51:20 +0100
committerErik De Rijcke <Erik.De.Rijcke@prodatamobility.com>2015-03-17 14:51:20 +0100
commite2864d7a12f1a19ff28d5393253d67babae41ee9 (patch)
tree737347a4af2a9526a77afb6526f215e350efeb0d
parent810a20622124917792a0ea637fadf3994504c596 (diff)
don't allow bufferpool usage when it is destroyed
-rw-r--r--examples/src/main/java/examples/Buffer.java6
-rw-r--r--examples/src/main/java/examples/BufferPool.java23
2 files changed, 21 insertions, 8 deletions
diff --git a/examples/src/main/java/examples/Buffer.java b/examples/src/main/java/examples/Buffer.java
index d24afe3..f50b749 100644
--- a/examples/src/main/java/examples/Buffer.java
+++ b/examples/src/main/java/examples/Buffer.java
@@ -22,7 +22,11 @@ public class Buffer implements WlBufferEvents {
@Override
public void release(final WlBufferProxy emitter) {
- bufferPool.queueBuffer(emitter);
+ if(bufferPool.isDestroyed()){
+ emitter.destroy();
+ }else {
+ bufferPool.queueBuffer(emitter);
+ }
}
public ByteBuffer getByteBuffer() {
diff --git a/examples/src/main/java/examples/BufferPool.java b/examples/src/main/java/examples/BufferPool.java
index db1d109..288290f 100644
--- a/examples/src/main/java/examples/BufferPool.java
+++ b/examples/src/main/java/examples/BufferPool.java
@@ -11,26 +11,35 @@ public class BufferPool implements WlShmPoolEvents{
private LinkedList<WlBufferProxy> bufferQueue = new LinkedList<WlBufferProxy>();
private boolean destroyed;
-
- public BufferPool() {
- }
-
public void queueBuffer(WlBufferProxy buffer){
if(destroyed){
- buffer.destroy();
- }else {
- this.bufferQueue.add(buffer);
+ throw new IllegalStateException("Pool destroyed");
}
+
+ this.bufferQueue.add(buffer);
}
public WlBufferProxy popBuffer(){
+ if(destroyed){
+ throw new IllegalStateException("Pool destroyed");
+ }
+
return bufferQueue.pop();
}
public void destroy(){
+ if(destroyed){
+ throw new IllegalStateException("Pool destroyed");
+ }
+
for (WlBufferProxy wlBufferProxy : bufferQueue) {
wlBufferProxy.destroy();
}
+ bufferQueue.clear();
this.destroyed = true;
}
+
+ public boolean isDestroyed() {
+ return destroyed;
+ }
}