diff options
-rw-r--r-- | src/util.c | 9 | ||||
-rw-r--r-- | wscript | 7 |
2 files changed, 9 insertions, 7 deletions
@@ -15,7 +15,6 @@ */ #define _POSIX_SOURCE 1 /* for wordexp, fileno */ -#define _BSD_SOURCE 1 /* for lockf */ #include <assert.h> #include <errno.h> @@ -28,6 +27,10 @@ #include <sys/types.h> #include <unistd.h> +#if defined(HAVE_FLOCK) && defined(HAVE_FILENO) +# include <sys/file.h> +#endif + #include "lilv_internal.h" #ifdef HAVE_WORDEXP @@ -354,8 +357,8 @@ lilv_path_is_child(const char* path, const char* dir) int lilv_flock(FILE* file, bool lock) { -#if defined(HAVE_LOCKF) && defined(HAVE_FILENO) - return lockf(fileno(file), lock ? F_LOCK : F_ULOCK, 0); +#if defined(HAVE_FLOCK) && defined(HAVE_FILENO) + return flock(fileno(file), lock ? LOCK_EX : LOCK_UN); #else return 0; #endif @@ -86,10 +86,9 @@ def configure(conf): define_name='HAVE_WORDEXP', mandatory=False) - conf.check_cc(function_name='lockf', - header_name='unistd.h', - defines='_BSD_SOURCE', - define_name='HAVE_LOCKF', + conf.check_cc(function_name='flock', + header_name='sys/file.h', + define_name='HAVE_FLOCK', mandatory=False) conf.check_cc(function_name='fileno', |