Skip to content

Commit

Permalink
Remove client support for pipelined requests
Browse files Browse the repository at this point in the history
Follows up on the discussion and work started in
#732.

The gist is this: supporting "pipelined requests" is not well-supported
across the web these days and severely complicates the threadsafe client
implementation in HTTP.jl. And as has been pointed out in various
discussions, the attempt to support pipelining is affecting our ability
to avoid thread-safety issues in general (see
#517).

This commit has a few key pieces:
  * Splits "connection pooling" logic into a new connectionpools.jl file
  * Removes pipeline-related fields/concepts from the ConnectionPool.jl
  file and specifically the `Connection`/`Transaction` data structures
  * Attempts to simplify a lot of the work/logic around managing a
  `Transaction`'s lifecycle

Things I haven't done yet:
  * Actually deprecated the `pipeline_limit` keyword argument
  * Got all tests passing; I think the websockets/server code isn't
  quite ironed out yet, but I'll dig into it some more tomorrow

Big thanks to @nickrobinson251 for help reviewing the connectionpools.jl
logic.

Pinging people to help review: @c42f, @vtjnash, @s2maki, @fredrikekre
  • Loading branch information
quinnj committed Dec 3, 2021
1 parent 01315fb commit 3ebffdf
Show file tree
Hide file tree
Showing 4 changed files with 316 additions and 303 deletions.
Loading

0 comments on commit 3ebffdf

Please sign in to comment.