title: Thread Safety in C
body: <p>imagine I write a library in C. Further, imagine this library to be used from a multi-threaded environment. <strong>How do I make it thread-safe?</strong> More specific: How do I assure, that certain functions are executed only by one thread at a time?</p></p>
  
  <p>In opposite to Java or C# for example, C has no means to deal with threads/locks/etc., nor does the C standard library. I know, that operating systems support threads, but using their api would restrict the compatibility of my library very much. Which possibilities do I have, to keep my library as compatible/portable as possible? (for example relying on OpenMP, or on Posix threads to keep it compatible with at least all unix-like operating systems?)</p>