message: Write to fifo could fail with EAGAIN
  It is just because of the fifo is full. Clear the fifo and retry.
  See
diff: @@ -65,8 +65,10 @@ void notify_fd(int fd)
  // write.
  if (ret != 0) {
  int err = errno;
  + if (err != EAGAIN) {
  throw std::system_error(err, std::system_category());
  }
  + }
  std::vector<uint8_t> buff(1024);
  read(fd, buff.data(), buff.size());
  }
  