]> Sergey Matveev's repositories - public-inbox.git/commit
imap: fix pipelining with async git
authorEric Wong <e@yhbt.net>
Wed, 10 Jun 2020 07:04:29 +0000 (07:04 +0000)
committerEric Wong <e@yhbt.net>
Sat, 13 Jun 2020 07:55:45 +0000 (07:55 +0000)
commitc4dd2b484bbb20f2be0d7bc4a0ae0e91df635b4a
treedf1069a4469010e1a1a8ca717a093357a563cdb7
parentafa44e1ddf1b9402caba5c7dc3c8e0f86194df86
imap: fix pipelining with async git

Since IMAP yields control to GitAsyncCat, IMAP->event_step may
be invoked with {long_cb} still active.  We must be sure to
bail out of IMAP->event_step if that happens and continue to let
GitAsyncCat drive IMAP.

This also improves fairness by never processing more than one
request per ->event_step.
lib/PublicInbox/IMAP.pm
lib/PublicInbox/IMAPdeflate.pm