gint fd = -1;
gboolean own = FALSE;
+#if !HAVE_FLOCK
+ struct flock fl = {
+ .l_type = F_WRLCK,
+ .l_whence = SEEK_SET,
+ .l_start = 0,
+ .l_len = 0
+ };
+#endif
+
fpath = luaL_checkstring (L, 1);
if (fpath) {
return 2;
}
+#if HAVE_FLOCK
if (flock (fd, LOCK_EX) == -1) {
+#else
+ if (fcntl (fd, F_SETLKW, &fl) == -1) {
+#endif
lua_pushnil (L);
lua_pushstring (L, strerror (errno));
gint fd = -1, ret, serrno;
gboolean do_close = TRUE;
+#if !HAVE_FLOCK
+ struct flock fl = {
+ .l_type = F_UNLCK,
+ .l_whence = SEEK_SET,
+ .l_start = 0,
+ .l_len = 0
+ };
+#endif
+
if (lua_isnumber (L, 1)) {
fd = lua_tonumber (L, 1);
do_close = lua_toboolean (L, 2);
}
+#if HAVE_FLOCK
ret = flock (fd, LOCK_UN);
+#else
+ ret = fcntl (fd, F_SETLKW, &fl);
+#endif
if (do_close) {
serrno = errno;