romange / helio

A modern framework for backend development based on io_uring Linux interface
Apache License 2.0
435 stars 49 forks source link

enable macos ci #210

Closed romange closed 7 months ago

romange commented 7 months ago
  1. Fix cmake flags so that we could run with sanitizers. Note: due to fibers the address sanitizers is practically useless but we will fix it in subsequent PRs. The problem was that we need to compile abseil lib with the same debug flags like helio so I moved those settings to before we include third_party libs.
  2. Fix periodic timer cancelation on macos. In general with epoll/kevent we can assume (for now) all the completions stop syncrhonously Once we cancel/delete the timer so we can just explicitly delete "item" in epoll_proactor. For io_uring the cancelation causes callback to run one more time so it will delete its item.
  3. The rest is minor built/test fixes in fibers_test related to macos.