      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);
  
      threads.emplace_back(can_send_thread, pandas, getenv("FAKESEND") != nullptr);
      threads.emplace_back(can_recv_thread, pandas);
  
      for (auto &t : threads) t.join();
 
</s> remove     LOGW("connected to board");
    Panda *peripheral_panda = pandas[0];
 </s> add     LOGW("connected to all pandas");
 </s> remove   // we have exited, clean up pandas
 </s> add  </s> remove     send_peripheral_state(pm, peripheral_panda);
    auto ignition_opt = send_panda_states(pm, pandas, spoofing_started);
 </s> add     send_peripheral_state(&pm, peripheral_panda);
    auto ignition_opt = send_panda_states(&pm, pandas, spoofing_started); </s> remove void panda_state_thread(PubMaster *pm, std::vector<Panda *> pandas, bool spoofing_started) {
 </s> add void panda_state_thread(std::vector<Panda *> pandas, bool spoofing_started) {
    threads.emplace_back(panda_state_thread, pandas, getenv("STARTED") != nullptr);
    threads.emplace_back(peripheral_control_thread, pandas[0], getenv("NO_FAN_CONTROL") != nullptr);
      LOGW("connected to board");
      Panda *peripheral_panda = pandas[0];
      std::vector<std::thread> threads;
  
    threads.emplace_back(panda_state_thread, pandas, getenv("STARTED") != nullptr);
    threads.emplace_back(peripheral_control_thread, pandas[0], getenv("NO_FAN_CONTROL") != nullptr);
    threads.emplace_back(panda_state_thread, pandas, getenv("STARTED") != nullptr);
    threads.emplace_back(peripheral_control_thread, pandas[0], getenv("NO_FAN_CONTROL") != nullptr);
  
      threads.emplace_back(can_send_thread, pandas, getenv("FAKESEND") != nullptr);
      threads.emplace_back(can_recv_thread, pandas);
  
      for (auto &t : threads) t.join();
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