Thor use a IFileIO implementation that allows file opens to be delayed and closed by LRU when a limit is exceeded.
The i/o operations, e.g. read/write ad protected by a critical section currently, in order that the open and close operations are thread safe.
This should be reworked to avoid holding the critical section for the duration of the i/o operation, which causes threads to in effect serialize io operations that share the same same ILazyFileIO.
Roxie had the same issue (shared very similar code), but this is being address by a separate JIRA.