code: func (l *FileLock) TrySharedLock() error {
  	err := syscall.Flock(l.fd, syscall.LOCK_SH|syscall.LOCK_NB)
  	if err == syscall.EWOULDBLOCK {
  		err = ErrLocked
  	}
  	return err
  }
docs: // TrySharedLock takes a co-operative (shared) lock without blocking.
  // This is idempotent when the Lock already represents a shared lock,
  // and tries demote an exclusive lock to shared atomically.
  // It will return ErrLocked if an exclusive lock already exists.