PyTables/PyTables — pull request #314 by avalentino (2014-01-06 21:44:56+00:00)
Title: Remove the file cache mechanism (alternative implementation)

This is an alternative implementation of PR #280.

The main change introduced with respect to the current develop branch is the removal of the caching mechanism for file handlers that seems to cause some issue during concurrent reading from different threads (see #130, #129, #292, and #216).

**NOTE**: the new implementation can't be considered thread safe and the user is still in charge to ensure appropriate locking of shared resources.

Differently from the implementation proposed in PR #280 in this case are preserved the following features:

* registration of all open files to ensure the correct file closing (and flushing) at program exit.
This avoids HDF5 file corruption or data loss if the user forgets to explicitly close a file.
* ensure that the same file is not opened simultaneously in read and write mode (or multiple times in write mode)

The proposed implementation do not change the public API.
The [File.open_count](http://pytables.github.io/usersguide/libref/file_class.html#tables.File.open_count) property is no longer useful (now it is always equal to `1`) so probably we could deprecate it.