INNER CODE UNIT · Java
enqueue
apache/dubbo · dubbo-common/src/main/java/org/apache/dubbo/common/BatchExecutorQueue.java:42
public void enqueue(T message, Executor executor) {
queue.add(message);
scheduleFlush(executor);
}
protected void scheduleFlush(Executor executor) {
if (scheduled.compareAndSet(false, true)) {
executor.execute(() -> this.run(executor));
}
}
private void run(Executor executor) {
try {
Queue<T> snapshot = new LinkedList<>();
T item;
while ((item = queue.poll()) != null) {
snapshot.add(item);
}