note these are for non-threaded programs only - libpthread will provide it's own thread-aware wrapper