Skip to content

feat(darwin): add macOS port - #37

Open
mastaresplinter wants to merge 1 commit into
rtlabs-com:masterfrom
mastaresplinter:darwin-port
Open

mastaresplinter wants to merge 1 commit into
rtlabs-com:masterfrom
mastaresplinter:darwin-port

Conversation

@mastaresplinter

Copy link
Copy Markdown
Contributor

Based on the Linux port, with replacements for POSIX APIs that macOS lacks:

  • Timed waits compute a CLOCK_MONOTONIC deadline and wait with pthread_cond_timedwait_relative_np, since pthread_condattr_setclock is missing.
  • Sleeps use nanosleep, since clock_nanosleep is missing.
  • Timers use a GCD dispatch source on a private serial queue, since POSIX timers are missing.
  • Threads name themselves from a start trampoline, since pthread_setname_np can only name the calling thread.
  • Thread stack sizes are rounded up to a page multiple, as required by macOS.

Based on the Linux port, with replacements for POSIX APIs that macOS
lacks:

- Timed waits compute a CLOCK_MONOTONIC deadline and wait with
  pthread_cond_timedwait_relative_np, since pthread_condattr_setclock
  is missing.
- Sleeps use nanosleep, since clock_nanosleep is missing.
- Timers use a GCD dispatch source on a private serial queue, since
  POSIX timers are missing.
- Threads name themselves from a start trampoline, since
  pthread_setname_np can only name the calling thread.
- Thread stack sizes are rounded up to a page multiple, as required
  by macOS.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant