in gflog-core/src/main/java/com/epam/deltix/gflog/core/service/AsyncLogService.java [72:99]
public void commit(final LogLocalEntry entry) {
final int required = entry.length();
final int offset;
if (strategy == OverflowStrategy.WAIT) {
offset = buffer.claim(required, backpressure);
} else {
offset = buffer.tryClaim(required);
if (offset < 0) {
failedOffersCounter.increment();
return;
}
}
try {
final long timestamp = clock.nanoTime();
final long address = buffer.dataAddress() + offset;
entry.onCommit(timestamp);
entry.copyTo(address);
buffer.commit(offset, required);
} catch (final Throwable e) {
LogDebug.warn("error committing log entry to log buffer", e);
buffer.abort(offset, required);
}
}