private boolean tryReserveFirstEventSizeAndLock(byte[] event) { return compareAndSetState(0, emitter.batchingStrategy.batchStartLength() + event.length + PARTY); }
/** * Returns the buffer offset at which the caller has reserved the ability to write `size` bytes exclusively, * or negative number, if the reservation attempt failed. */ private int tryReserveEventSizeAndLock(long state, int size) { Preconditions.checkArgument(size > 0); int bufferWatermark = bufferWatermark(state); while (true) { if (compareAndSetState(state, state + size + PARTY)) { return bufferWatermark; } state = getState(); if (isSealed(state)) { return -1; } bufferWatermark = bufferWatermark(state); int newBufferWatermark = bufferWatermark + size; Preconditions.checkState(newBufferWatermark > 0); if (newBufferWatermark > emitter.maxBufferWatermark) { return -1; } } }
if (compareAndSetState(state, newState)) { return isEmittingAllowed(newState); if (compareAndSetState(state, newState)) { if (compareAndSetState(state, newState)) { log.debug("Sealed batch [%d]", batchNumber); debugLogState("old state", state);
private boolean tryReserveFirstEventSizeAndLock(byte[] event) { return compareAndSetState(0, emitter.batchingStrategy.batchStartLength() + event.length + PARTY); }
/** * Returns the buffer offset at which the caller has reserved the ability to write `size` bytes exclusively, * or negative number, if the reservation attempt failed. */ private int tryReserveEventSizeAndLock(long state, int size) { Preconditions.checkArgument(size > 0); int bufferWatermark = bufferWatermark(state); while (true) { if (compareAndSetState(state, state + size + PARTY)) { return bufferWatermark; } state = getState(); if (isSealed(state)) { return -1; } bufferWatermark = bufferWatermark(state); int newBufferWatermark = bufferWatermark + size; Preconditions.checkState(newBufferWatermark > 0); if (newBufferWatermark > emitter.maxBufferWatermark) { return -1; } } }
if (compareAndSetState(state, newState)) { return isEmittingAllowed(newState); if (compareAndSetState(state, newState)) { if (compareAndSetState(state, newState)) { log.debug("Sealed batch [%d]", batchNumber); debugLogState("old state", state);