torarnv / sparsebundlefs

FUSE filesystem for reading macOS sparse-bundle disk images
BSD 2-Clause "Simplified" License
330 stars 38 forks source link

Adopted LRU from https://github.com/cluck, tested, fixed some issues (fix of issue#20) #22

Open wwwenca opened 7 years ago

wwwenca commented 7 years ago

Hi I have adopted LRU idea from https://github.com/cluck, tested, fixed some issues, especially multithreading access to LRU which caused fails. This should fix issue#20. (I have been able to copy like 100G+ with this version on my Synology NAS, so I believe it works)

torarnv commented 6 years ago

How did you test multi-threading? As in, do you have a simple testcase/usage that will result in fuse using more than one thread?

wwwenca commented 6 years ago

It has been a while, so i am not sure of the exact steps. Anyway, as far as I remember.... It was something like it was running ok in the foreground, but when I run it in the background it failed almost immediately. I started with debugging and found out that it behaved like same LRU item was used twice which I supposed to be a multithreading issue. Adding the critical sections solved the problem and stabilised the run. Then I used it for copying some large backups from the sparsebundles. They were ok, as i did compare them to the original files. Since than i had no more chance to test it.