Closed gwynne closed 1 year ago
This pull request sets up GitHub code scanning for this repository. Once the scans have completed and the checks have passed, the analysis results for this pull request branch will appear on this overview. Once you merge this pull request, the 'Security' tab will show more code scanning analysis results (for example, for the default branch). Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results. For more information about GitHub code scanning, check out the documentation.
Merging #102 (deda984) into main (4ee8c97) will decrease coverage by
0.07%
. Report is 1 commits behind head on main. The diff coverage is95.78%
.
Holding off on merging this until @0xTim can glance at it too, given how fundamental this awful code is to Fluent.
These changes are now available in 1.18.0
Overview
This is a temporary stopgap measure to clean up some of the more extant issues with the existing implementation, pending the integration of a much more robust and advanced connection pool solution.
While technically there is no change in the public API surface, this is nonetheless being marked as semver-minor due to the significant changes in behavior. This PR has already revealed a query ordering bug in the Fluent benchmarks just by behaving more correctly.
This should hopefully fix the issue described in #101, but I haven't been able to locally reproduce the race condition despite being fairly sure as to its cause, so I can't verify.
More details
Deque
instead of the obsoleteCircularBuffer
for tracking available connectionsOrderedDictionary
and numeric waiter IDs to track waitlists rather than the obsoleteCircularBuffer