      ++i;
    }
  
    if (!do_exit) {
      LOGW("connected to board");
      Panda *peripheral_panda = pandas[0];
      std::vector<std::thread> threads;
  
      threads.emplace_back(panda_state_thread, &pm, pandas, getenv("STARTED") != nullptr);
      threads.emplace_back(peripheral_control_thread, peripheral_panda, getenv("NO_FAN_CONTROL") != nullptr);
  
 
</s> remove     threads.emplace_back(panda_state_thread, &pm, pandas, getenv("STARTED") != nullptr);
    threads.emplace_back(peripheral_control_thread, peripheral_panda, getenv("NO_FAN_CONTROL") != nullptr);
 </s> add     threads.emplace_back(panda_state_thread, pandas, getenv("STARTED") != nullptr);
    threads.emplace_back(peripheral_control_thread, pandas[0], getenv("NO_FAN_CONTROL") != nullptr); </s> remove       // send empty pandaState & peripheralState and try again
      send_empty_panda_state(&pm);
      send_empty_peripheral_state(&pm);
      util::sleep_for(500);
 </s> add       util::sleep_for(100); </s> remove       if (fan_speed != prev_fan_speed || cnt % 100 == 0) {
 </s> add       if (fan_speed != prev_fan_speed || sm.frame % 100 == 0) { </s> remove   #ifndef __x86_64__
 </s> add 
    LOGW("connected to all pandas");

      ++i;
    }
  
    if (!do_exit) {
    LOGW("connected to all pandas");

    LOGW("connected to all pandas");

      std::vector<std::thread> threads;
  
      threads.emplace_back(panda_state_thread, &pm, pandas, getenv("STARTED") != nullptr);
      threads.emplace_back(peripheral_control_thread, peripheral_panda, getenv("NO_FAN_CONTROL") != nullptr);
  
keep keep keep keep replace replace keep keep keep keep keep
 boardd: misc cleanup (#28969)

* boardd cleanup

* no more front frame

* faster connect loop

* fix that on mac 
selfdrive/boardd/boardd.cc