private static bool TryDoFileLocking(int fd, bool lockFile, FlockOperation? specificFlag = null)
{
if (fd >= 0)
{
int res;
Errno lastError;
do
{
res = Flock(fd, specificFlag ?? (lockFile ? FlockOperation.LOCK_EX : FlockOperation.LOCK_UN));
lastError = Stdlib.GetLastError();
}
while(res != 0 && lastError == Errno.EINTR);
// if can't get lock ...
return res == 0;
}
return false;
}