Hi ๐๐ผ
When I open multiple shells in parallel, they are throttled by the eval $(sheldon source) which is waiting for lock and result in having Blocking waiting for file lock on ~/.config/sheldon echoed in all terminal panes.
I think the mutex lock if covering too much of the execution (from https://github.com/rossmacarthur/sheldon/blob/trunk/src/main.rs#L45-L51, it is acquired once for the entire execution).
I get that we don't want the app accessing the locked plugins during a lock/update, but here the mutex lock is acquired whether a lock/update is in progress.
I don't know what would be the best solution, but I think an improvement could be:
- use of some kind of interprocess
RwLockso multiple reads in parallel do not block each others - reduce the write locking to only the effective write instead of the entire application execution
However maybe just acquiring the mutex on the read/update parts would be enough ๐คท๐ผ