Skip to content

Commit b2c60e7

Browse files
authored
Allow concurrent exports (#2181)
* Allow concurrent exports * Bump version
1 parent f969b47 commit b2c60e7

File tree

5 files changed

+471
-354
lines changed

5 files changed

+471
-354
lines changed

agent/agent-tooling/src/main/java/com/microsoft/applicationinsights/agent/internal/telemetry/BatchSpanProcessor.java

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -232,6 +232,28 @@ private CompletableResultCode shutdown() {
232232
}
233233

234234
private CompletableResultCode forceFlush() {
235+
CompletableResultCode overallResult = new CompletableResultCode();
236+
CompletableResultCode workerResult = forceFlushWorker();
237+
workerResult.whenComplete(
238+
() -> {
239+
if (!workerResult.isSuccess()) {
240+
overallResult.fail();
241+
return;
242+
}
243+
CompletableResultCode exporterResult = spanExporter.flush();
244+
exporterResult.whenComplete(
245+
() -> {
246+
if (exporterResult.isSuccess()) {
247+
overallResult.succeed();
248+
} else {
249+
overallResult.fail();
250+
}
251+
});
252+
});
253+
return overallResult;
254+
}
255+
256+
private CompletableResultCode forceFlushWorker() {
235257
CompletableResultCode flushResult = new CompletableResultCode();
236258
// we set the atomic here to trigger the worker loop to do a flush of the entire queue.
237259
if (flushRequested.compareAndSet(null, flushResult)) {

0 commit comments

Comments
 (0)