Code example for ArrayBlockingQueue

Methods: add, drainTo, size

0
			double z = event.values[2];
			double m = Math.sqrt(x*x + y*y + z*z);
						 
			// Add m to the mAccBuffer one by one. 
			try { 
				mAccBuffer.add(new Double(m));
			} catch (IllegalStateException e) {
 
				// Exception happens when reach the capacity. 
				// Doubling the buffer. ListBlockingQueue has no such issue, 
				// But generally has worse performance 
				ArrayBlockingQueue<Double> newBuf = new ArrayBlockingQueue<Double>(
						mAccBuffer.size()*2);
				mAccBuffer.drainTo(newBuf);
				mAccBuffer = newBuf;
				mAccBuffer.add(new Double(m));
 
			} 
		} 
	}