Use flock() instead of fcntl(F_SETLKW).