Re: [PATCH v7 4/8] worktree: simplify find_shared_symref() memory ownership model

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 1, 2021 at 7:13 PM Eric Sunshine <sunshine@xxxxxxxxxxxxxx> wrote:
> If we instead hoist ownership of `worktrees` up to execute_commands()
> -- which calls execute_commands_atomic() or
> execute_commands_non_atomic() -- then we can get by with retrieving
> the worktrees just once, and all those noise changes in update() can
> be dropped since it will no longer be responsible for allocating or
> freeing `worktrees`. For instance:
>
>     static void execute_commands(...)
>     {
>         struct worktree **worktrees;
>         ...
>         worktrees = get_worktrees();
>          if (use_atomic)
>             execute_commands_atomic(commands, si, worktrees);
>         else
>             execute_commands_non_atomic(commands, si, worktrees);
>         free_worktrees(worktrees);
>         ...
>     }
>
> and then execute_commands_atomic() and execute_commands_non_atomic()
> can pass `worktrees` along to update().

By the way, I wouldn't typically recommend this sort of change for
public API since it probably exposes too much implementation detail to
callers, but as these are all private (static) worker functions --
with very few callers, moreover -- I don't find it terribly worrying.



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux