Fix pq_putmessage_noblock() to not block.
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 29 Jul 2016 16:52:57 +0000 (12:52 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 29 Jul 2016 16:52:57 +0000 (12:52 -0400)
An evident copy-and-pasteo in commit 2bd9e412f broke the non-blocking
aspect of pq_putmessage_noblock(), causing it to behave identically to
pq_putmessage().  That function is nowadays used only in walsender.c,
so that the net effect was to cause walsenders to hang up waiting for
the receiver in situations where they should not.

Kyotaro Horiguchi

Patch: <20160728.185228.58375982.horiguchi.kyotaro@lab.ntt.co.jp>

src/include/libpq/libpq.h

index 547d3b8234923e256d2fe677b1285be74980c71e..18052cbfef86d51a0d08149d72148e4263ebc921 100644 (file)
@@ -43,7 +43,7 @@ extern PGDLLIMPORT PQcommMethods *PqCommMethods;
 #define pq_putmessage(msgtype, s, len) \
    (PqCommMethods->putmessage(msgtype, s, len))
 #define pq_putmessage_noblock(msgtype, s, len) \
-   (PqCommMethods->putmessage(msgtype, s, len))
+   (PqCommMethods->putmessage_noblock(msgtype, s, len))
 #define pq_startcopyout() (PqCommMethods->startcopyout())
 #define pq_endcopyout(errorAbort) (PqCommMethods->endcopyout(errorAbort))