in activeio-core/src/main/java/org/apache/activeio/packet/PacketPool.java [81:99]
public Packet getPacket() throws InterruptedException {
Packet answer=null;
synchronized(this) {
while(answer==null) {
if( disposed )
return null;
if( pool.size()>0) {
answer = (Packet) pool.remove(pool.size()-1);
} else if( currentPoolSize < maxPackets ) {
answer = allocateNewPacket();
currentPoolSize++;
}
if( answer==null ) {
this.wait();
}
}
}
return new PooledPacket(answer);
}