start() now bails out if stop pin is set, regardless of state (rather than only doing so if state was already STOPPED). This makes it impossible to "bypass" the stopped state and go from STOPPING to STARTING.
@@ -187,8 +187,8 @@ void service_record::release_dependencies() noexcept
void service_record::start() noexcept
{
- if (service_state == service_state_t::STOPPED && pinned_stopped) {
- // bail out early for this special case
+ if (pinned_stopped) {
+ // bail out early for this case, we don't want to set start_explicit
return;
}