Emul8.Utilities.PosixFileLocker.TryDoFileLocking C# (CSharp) Method

TryDoFileLocking() private static method

private static TryDoFileLocking ( int fd, bool lockFile, FlockOperation specificFlag = null ) : bool
fd int
lockFile bool
specificFlag FlockOperation
return bool
        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;
        }