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

Reply via email to