- for (auto dep : depends_on) {
- if (dep.dep_type == dependency_type::REGULAR) {
- if (dep.get_to()->service_state != service_state_t::STARTED) {
- if (start_deps) {
- all_deps_started = false;
- dep.get_to()->prop_start = true;
- services->add_prop_queue(dep.get_to());
- }
- else {
- return false;
- }
- }
- }
- else if (dep.dep_type == dependency_type::SOFT) {
- service_record * to = dep.get_to();
- if (start_deps) {
- if (to->service_state != service_state_t::STARTED) {
- to->prop_start = true;
- services->add_prop_queue(to);
- dep.waiting_on = true;
- all_deps_started = false;
- }
- else {
- dep.waiting_on = false;
- }
- }
- else if (dep.waiting_on) {
- if (to->service_state != service_state_t::STARTING) {
- // Service has either started or is no longer starting
- dep.waiting_on = false;
- }
- else {
- // We are still waiting on this service
- return false;
- }
+ for (auto & dep : depends_on) {
+ service_record * to = dep.get_to();
+ if (to->service_state != service_state_t::STARTED) {
+ if (to->service_state != service_state_t::STARTING) {
+ to->prop_start = true;
+ services->add_prop_queue(to);