noirbizarre ยท GitHub

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 RwLock so 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 ๐Ÿคท๐Ÿผ

Read the original on github.com โ†—