Without realizing what I was getting myself into, I wrote some code using C11’s threads.h (EDIT: every time I use the angle brackets < and > they just get eaten, even in the code snippet block.) I’m realizing after the fact that this is basically only supported on Linux (gcc/clang). This is my target platform, but I guess if I could cross compile to Windows or macOS that would be nice, too.

C’s threads nominally appear to be a great feature. Finally, a standardized and straightforward interface to threads that would be cross-platform compatible. The reality appears to be anything but.

So is it worth just replacing that code with pthreads? Is there some near-term development on C threads that might make this worthwhile to use? I’m kind of surprised it hasn’t really caught on some 12 years after the standard was introduced.

  • kevincox
    link
    fedilink
    arrow-up
    5
    ·
    1 year ago

    pthreads is fine and widely supported. I would probably recommend that interface for now. Maybe after 5 years or so when all of the LTS systems support the new standard that will be the better option, but all major OSes are POSIX compatible so no need for a new standard anyways.

    Also if you want to take advantage of any OS-specific extensions they are probably supported by pthreads, but the new C threads API will probably lag.