protected internal override void EventNotificationsCompleted(PvmExecutionImpl execution)
        {
            base.EventNotificationsCompleted(execution);

            var          transition = execution.Transition;
            IPvmActivity destination;

            if (transition == null)
            {
                destination = execution.Activity;
            }
            else
            {
                destination = transition.Destination;
            }
            execution.Transition = (null);
            execution.Activity   = (ActivityImpl)(destination);

            var executionStartContext = execution.ExecutionStartContext;

            if (executionStartContext != null)
            {
                executionStartContext.ExecutionStarted(execution);
                execution.DisposeExecutionStartContext();
            }

            execution.DispatchDelayedEventsAndPerformOperation(PvmAtomicOperationFields.ActivityExecute);
        }
        protected internal override void EventNotificationsCompleted(PvmExecutionImpl execution)
        {
            base.EventNotificationsCompleted(execution);

            var executionStartContext = execution.ExecutionStartContext;

            if (executionStartContext != null)
            {
                executionStartContext.ExecutionStarted(execution);
                execution.DisposeExecutionStartContext();
            }

            execution.DispatchDelayedEventsAndPerformOperation(PvmAtomicOperationFields.ActivityExecute);
        }