Multi threaded environment

Each database provider should be usable in a multi threaded environment, even if they impose some restrictions as to how they can be used in such an environment. The Libgda's framework provides some locking mechanism which is: