As of POOL V0.5 we implement is the following:

  • on reading:
  • POOL instantiates all persistent objects (usually as part of the smart pointer dereferencing operators (eg ReF::operator->() ). Memory is de-allocated by POOL and released when the last Ref pointing to that object is destructed.

  • on writing:
  • Basically the same policy applies. If a user marks an object for writing at the same the ownership is passed to the POOL cache. The user code should not (as in previous releases) delete any objects for which mark write has been called. The objects will be deleted automatically after their transaction context has been committed. User should not make any assumptions on the sequence in which object are destroyed.