auto classes and finalizers

Mike Capp mike.capp at gmail.com
Sun Apr 9 17:46:36 PDT 2006


In article <e1c6vl$moj$1 at digitaldaemon.com>, kris says...
>
>I think we can safely put aside the entire-program-as-one-function as 
>unrealistic. Given that, and assuming the existance of a dtor implies 
>"auto" (and thus raii), how does one manage a "pool" of resources? For 
>example, how about a pool of DB connections? Let's assume that they need 
>to be correctly closed at some point, and that the pool is likely to 
>expand and contract based upon demand over time ...
>
>So the question is how do those connections, and the pool itself, jive 
>with scoped raii? Assuming it doesn't, then one would presumeably revert 
>to a manual dispose() pattern with such things?

Two different classes. A ConnectionPool at application scope, e.g. in main(),
and a ConnectionUsage wherever you need one. Both are RAII. ConnectionPool acts
as a factory for ConnectionUsage instances (modulo language limitations) and
adds to the pool as needed; ConnectionUsage just "borrows" an instance from the
pool for the duration of its scope.

cheers
Mike





More information about the Digitalmars-d mailing list