Set timeouts on boardd and ubloxd receive sockets

old-commit-hash: 28110ea880
commatwo_master
Willem Melching 5 years ago
parent 68dd136645
commit 4d93e0b907
  1. 10
      selfdrive/boardd/boardd.cc
  2. 4
      selfdrive/locationd/ubloxd_main.cc

@ -586,12 +586,19 @@ void *can_send_thread(void *crap) {
Context * context = Context::create(); Context * context = Context::create();
SubSocket * subscriber = SubSocket::create(context, "sendcan"); SubSocket * subscriber = SubSocket::create(context, "sendcan");
assert(subscriber != NULL); assert(subscriber != NULL);
subscriber->setTimeout(100);
// run as fast as messages come in // run as fast as messages come in
while (!do_exit) { while (!do_exit) {
Message * msg = subscriber->receive(); Message * msg = subscriber->receive();
if (msg){ if (!msg){
if (errno == EINTR) {
do_exit = true;
}
continue;
}
auto amsg = kj::heapArray<capnp::word>((msg->getSize() / sizeof(capnp::word)) + 1); auto amsg = kj::heapArray<capnp::word>((msg->getSize() / sizeof(capnp::word)) + 1);
memcpy(amsg.begin(), msg->getData(), msg->getSize()); memcpy(amsg.begin(), msg->getData(), msg->getSize());
@ -600,7 +607,6 @@ void *can_send_thread(void *crap) {
can_send(event); can_send(event);
delete msg; delete msg;
} }
}
delete subscriber; delete subscriber;
delete context; delete context;

@ -37,12 +37,16 @@ int ubloxd_main(poll_ubloxraw_msg_func poll_func, send_gps_event_func send_func)
Context * context = Context::create(); Context * context = Context::create();
SubSocket * subscriber = SubSocket::create(context, "ubloxRaw"); SubSocket * subscriber = SubSocket::create(context, "ubloxRaw");
assert(subscriber != NULL); assert(subscriber != NULL);
subscriber->setTimeout(100);
PubMaster pm({"ubloxGnss", "gpsLocationExternal"}); PubMaster pm({"ubloxGnss", "gpsLocationExternal"});
while (!do_exit) { while (!do_exit) {
Message * msg = subscriber->receive(); Message * msg = subscriber->receive();
if (!msg){ if (!msg){
if (errno == EINTR) {
do_exit = true;
}
continue; continue;
} }

Loading…
Cancel
Save