@@ -2520,10 +2520,11 @@ ui64 TDataShard::GetMaxObservedStep() const {
2520
2520
}
2521
2521
2522
2522
void TDataShard::SendImmediateWriteResult (
2523
- const TRowVersion& version, const TActorId& target, IEventBase* event , ui64 cookie,
2523
+ const TRowVersion& version, const TActorId& target, IEventBase* eventRawPtr , ui64 cookie,
2524
2524
const TActorId& sessionId,
2525
2525
NWilson::TTraceId traceId)
2526
2526
{
2527
+ THolder<IEventBase> event (eventRawPtr);
2527
2528
NWilson::TSpan span (TWilsonTablet::TabletDetailed, std::move (traceId), " Datashard.SendImmediateWriteResult" , NWilson::EFlags::AUTO_END);
2528
2529
2529
2530
const ui64 step = version.Step ;
@@ -2535,9 +2536,9 @@ void TDataShard::SendImmediateWriteResult(
2535
2536
if (Y_LIKELY (!InMemoryVarsFrozen) || version <= SnapshotManager.GetImmediateWriteEdgeReplied ()) {
2536
2537
SnapshotManager.PromoteImmediateWriteEdgeReplied (version);
2537
2538
if (!sessionId) {
2538
- Send (target, event, 0 , cookie, span.GetTraceId ());
2539
+ Send (target, event. Release () , 0 , cookie, span.GetTraceId ());
2539
2540
} else {
2540
- SendViaSession (sessionId, target, SelfId (), event, 0 , cookie, span.GetTraceId ());
2541
+ SendViaSession (sessionId, target, SelfId (), event. Release () , 0 , cookie, span.GetTraceId ());
2541
2542
}
2542
2543
} else {
2543
2544
span.EndError (" Dropped" );
@@ -2548,7 +2549,7 @@ void TDataShard::SendImmediateWriteResult(
2548
2549
MediatorDelayedReplies.emplace (
2549
2550
std::piecewise_construct,
2550
2551
std::forward_as_tuple (version),
2551
- std::forward_as_tuple (target, THolder<IEventBase> (event), cookie, sessionId, std::move (span)));
2552
+ std::forward_as_tuple (target, std::move (event), cookie, sessionId, std::move (span)));
2552
2553
2553
2554
// Try to subscribe to the next step, when needed
2554
2555
if (MediatorTimeCastEntry && (MediatorTimeCastWaitingSteps.empty () || step < *MediatorTimeCastWaitingSteps.begin ())) {
0 commit comments