/// <inheritdoc/> public Status DoFastOperation(FasterKV <Key, Value> fasterKV, ref PendingContext <Input, Output, Context> pendingContext, IFasterSession <Key, Value, Input, Output, Context> fasterSession, FasterExecutionContext <Input, Output, Context> currentCtx, bool asyncOp, out CompletionEvent flushEvent, out Output output) { output = default; flushEvent = fasterKV.hlog.FlushEvent; Status status = !this.diskRequest.IsDefault() ? fasterKV.InternalCompletePendingRequestFromContext(currentCtx, currentCtx, fasterSession, this.diskRequest, ref pendingContext, asyncOp, out AsyncIOContext <Key, Value> newDiskRequest) : fasterKV.CallInternalRMW(fasterSession, currentCtx, ref pendingContext, ref pendingContext.key.Get(), ref pendingContext.input.Get(), pendingContext.userContext, pendingContext.serialNum, asyncOp, out flushEvent, out newDiskRequest); if (status == Status.PENDING && !newDiskRequest.IsDefault()) { flushEvent = default; this.diskRequest = newDiskRequest; } return(status); }