Fixed|FS|libcore: Fixes and improvements in the file system
Native files were not being closed appropriately after reads and writes. On some platforms this may trigger an error of too many open files.
The metadata bank was writing and reading hundreds of files that were all left open.
The pruning rules were changed for files that are created by the application itself. There is little sense in pruning these files because they are actively being modified anyway. This simplifies things for the FileLogSink because it doesn't have to worry about its output file going suddenly missing any more.
It was also possible to trigger a mutex hang when going through the file index while a folder population was ongoing. File names and paths are immutable information, so there's no point in locking them. (Files are locked at a higher level as needed.)
Fixed|FS|libcore: Fixes and improvements in the file system
Native files were not being closed appropriately after reads and writes.
On some platforms this may trigger an error of too many open files.
The metadata bank was writing and reading hundreds of files that were
all left open.
The pruning rules were changed for files that are created by the
application itself. There is little sense in pruning these files because
they are actively being modified anyway. This simplifies things for the
FileLogSink because it doesn't have to worry about its output file going
suddenly missing any more.
It was also possible to trigger a mutex hang when going through the file
index while a folder population was ongoing. File names and paths are
immutable information, so there's no point in locking them. (Files are
locked at a higher level as needed.)