code: func RunShared(ctx context.Context, env subcommands.Env, command func(context.Context) error) error {
  	lockFilePath, drainFilePath, err := computeMutexPaths(env)
  	if err != nil {
  		return err
  	}
  	if len(lockFilePath) == 0 {
  		return command(ctx)
  	}
  
  	blocker := createLockBlocker(ctx)
  
  	// Use the same retry mechanism for checking if the drain file still exists
  	// as we use to request the file lock.
  	if err = blockWhileFileExists(drainFilePath, blocker); err != nil {
  		return err
  	}
  
  	return fslock.WithSharedBlocking(lockFilePath, blocker, func() error {
  		return command(ctx)
  	})
  }
docs: // RunShared runs the command with the specified context and environment while
  // holding a shared mmutex lock.