Restart this branch with a forward-port of 6fe8447a4651 and 9006ab2b1fae, with args to amqp_channel_sup:start_writer() rearranged to be more consistent.
Rearrange and simplify connection startup. It still seems reasonable to keep the concept of the start_infrastructure_fun around, that closure hides quite a lot of state. The other closure can go though.
Send commands to the writer asynchronously.
Don't assume that calling basic.publish will explode, that only really worked by coincidence.
Flow control. Conveniently the amqp_channel already knows how to handle bump_credit due to its use in the direct client.
Merge default
Inline next/1.
Don't do flow control if we didn't ask for it, and a small refactor
Only catch "benign" errors.
with_exit_handler/2 did not do what I thought it did.
merge bug25520 into default (again)
Flush the writer under all circumstances when we are terminating.
Merge default
Fix auto-merge error.
Use the new rabbit_heartbeat:start/6 API.
merge bug25682 into default
adds rabbit_channel_interceptor to rabbit_common
Merge default
Reduce distance to default and number of unused variable warnings...
merge bug25804 into default