On Monday, 13 June 2022 at 13:15:42 UTC, Steven Schveighoffer
wrote:
Possibly, but I don't close the handle. It goes back to a pool
to get reused.
Um. I need a (fresh) connection per CGI process. I wonder if
nowadays the TLS startup between the browser and the webserver
isn't at least one or two magnitudes more expensive than the
(unencrypted) connection to the domain socket of the DB engine.
May pooling DB connections instead of closing them be optimizing
on the wrong end?
Why not have a Transaction class (struct)?
A transaction class/struct cannot hook normal return and
throwing differently (the destructor has no way of knowing
whether an exception is in flight).
Regarding C++: “[...] In a proper robust design, commits should
always be explicit and destructors only rollback uncommitted
transactions. [...]
There is now enough introspection in the language to actually
implement implicit commit in a non exceptional path, but I think
it would be a mistake."
[1] https://news.ycombinator.com/item?id=24648406