Explicit Resource Management for pg pool client#3661
Draft
hyperair wants to merge 7 commits intobrianc:masterfrom
Draft
Explicit Resource Management for pg pool client#3661hyperair wants to merge 7 commits intobrianc:masterfrom
hyperair wants to merge 7 commits intobrianc:masterfrom
Conversation
bac8c73 to
7d69534
Compare
Author
|
Hmm, looks like eslint needs to be upgraded before it'll parse the |
When `Symbol.dispose` is defined, define a disposer function that simply calls `this.release()`. This lets the `PoolClient` with the `using` syntax work with any downstream-overridden `release` functions. This makes `PoolClient` support Explicit Resource Management when the runtime supports it. Fixes: brianc#3515
Add a `destroyOnDispose` property on the client to signal that `[Symbol.dispose]()` should call `client.release(true)` instead of `client.release()`.
7d69534 to
0cb5f67
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Add support for Explicit Resource Management for
pg.Poolclients.This is implemented using
[Symbol.dispose]instead of[Symbol.asyncDispose]becauseclient.release()is a synchronous function, not async.Additionally, add a second property
client.destroyOnDisposeso thatSymbol.disposesupports callingclient.release(true). This is useful for a usecase that changes connection parameters in a way that is troublesome to reset upon release to the pool, e.g.Fixes: #3515