You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
hashcat/src/locking.c

63 lines
905 B

/**
* Author......: See docs/credits.txt
* License.....: MIT
*/
#include "common.h"
#include "types.h"
#include "event.h"
#include "locking.h"
#if defined (F_SETLKW)
int lock_file (FILE *fp)
{
struct flock lock;
memset (&lock, 0, sizeof (struct flock));
lock.l_type = F_WRLCK;
/* Needs this loop because a signal may interrupt a wait for lock */
while (fcntl (fileno (fp), F_SETLKW, &lock))
{
if (errno != EINTR) return -1;
}
return 0;
}
int unlock_file (FILE *fp)
{
struct flock lock;
memset (&lock, 0, sizeof (struct flock));
lock.l_type = F_UNLCK;
if (fcntl (fileno (fp), F_SETLK, &lock))
{
return -1;
}
return 0;
}
#else
int lock_file (MAYBE_UNUSED FILE *fp)
{
// we should put windows specific code here
return 0;
}
int unlock_file (MAYBE_UNUSED FILE *fp)
{
// we should put windows specific code here
return 0;
}
#endif // F_SETLKW