internal virtual void Complete(RedisResult result)
{
#if VERBOSE
Trace.WriteLine("< " + command);
#endif
var snapshot = Interlocked.Exchange(ref messageResult, null); // only run once
ChangeState(MessageState.Sent, MessageState.Complete);
if (snapshot != null)
{
snapshot.Complete(result);
}
}