refactor: remove unnecessary memory context switches #232
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.
Currently memory contexts are used to work around the short memory context of SPI blocks (SPI_connect and SPI_finish), which are used inside some functions. For example:
pg_net/src/core.c
Lines 139 to 170 in 314d00e
pg_net/src/core.c
Lines 172 to 227 in 314d00e
But it's unnecessary to do that, instead we can use a single SPI block in the worker loop and share the same memory context for the curl operations.
This makes the code simpler and makes memory allocations more visible.
Note
The implementation is basically reordering function calls, there's no change of logic.