On Wednesday, 12 November 2014 at 20:00:31 UTC, Uranuz wrote:
If we will have something like *scoped destructor* (that will be executed at scope exit) could it help to release some resources?
Don't know what you mean here. Isn't that just a normal destructor?
I worry about this problem too because even using class to hold resource I expirience some *delays* in relesing them. For example I have database connection opened. And I want to close it when I finished my job. Relying on GC I sometimes experiece problems like *too many DB connections*, because GC frees it not enough quickly.
I'd say database connections and file descriptors simply shouldn't be managed by the GC. It is good at managing memory, but not for other things. It's better to have a connection pool, and from that pool take a reference to the DB connection, use it as long as you need it, and then give it back. This can be implemented nicely with scope(exit).
