I'd like to write a library which only uses locking if the application is linked against pthreads. Is this possible? (The implementation requires global state, so it's not possible to expose a thread-safe API explicitly passing objects containing state.)