Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit9a2e9c6

Browse files
committed
Avoid PQisBusy/PQconsumeInput busy loop in case of PQisBusy returning
false. per Tom Lane's suggestion. See:Subject: Suggested change to pgbenchFrom: Tom Lane <tgl@sss.pgh.pa.us>To: Tatsuo Ishii <t-ishii@sra.co.jp>Cc: pgsql-patches@postgreSQL.orgDate: Sun, 06 Oct 2002 12:37:27 -0400for more details.
1 parente4c2967 commit9a2e9c6

File tree

1 file changed

+19
-21
lines changed

1 file changed

+19
-21
lines changed

‎contrib/pgbench/pgbench.c

Lines changed: 19 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* $Header: /cvsroot/pgsql/contrib/pgbench/pgbench.c,v 1.19 2002/09/04 20:31:08 momjian Exp $
2+
* $Header: /cvsroot/pgsql/contrib/pgbench/pgbench.c,v 1.20 2002/10/07 05:10:02 ishii Exp $
33
*
44
* pgbench: a simple TPC-B like benchmark program for PostgreSQL
55
* written by Tatsuo Ishii
@@ -184,17 +184,16 @@ doOne(CState * state, int n, int debug, int ttype)
184184
{/* are we receiver? */
185185
if (debug)
186186
fprintf(stderr,"client %d receiving\n",n);
187-
while (PQisBusy(st->con)== TRUE)
188-
{
189-
if (!PQconsumeInput(st->con))
190-
{/* there's something wrong */
191-
fprintf(stderr,"Client %d aborted in state %d. Probably the backend died while processing.\n",n,st->state);
192-
remains--;/* I've aborted */
193-
PQfinish(st->con);
194-
st->con=NULL;
195-
return;
196-
}
187+
if (!PQconsumeInput(st->con))
188+
{/* there's something wrong */
189+
fprintf(stderr,"Client %d aborted in state %d. Probably the backend died while processing.\n",n,st->state);
190+
remains--;/* I've aborted */
191+
PQfinish(st->con);
192+
st->con=NULL;
193+
return;
197194
}
195+
if (PQisBusy(st->con))
196+
return;/* don't have the whole result yet */
198197

199198
switch (st->state)
200199
{
@@ -367,17 +366,16 @@ doSelectOnly(CState * state, int n, int debug)
367366
{/* are we receiver? */
368367
if (debug)
369368
fprintf(stderr,"client %d receiving\n",n);
370-
while (PQisBusy(st->con)== TRUE)
371-
{
372-
if (!PQconsumeInput(st->con))
373-
{/* there's something wrong */
374-
fprintf(stderr,"Client %d aborted in state %d. Probably the backend died while processing.\n",n,st->state);
375-
remains--;/* I've aborted */
376-
PQfinish(st->con);
377-
st->con=NULL;
378-
return;
379-
}
369+
if (!PQconsumeInput(st->con))
370+
{/* there's something wrong */
371+
fprintf(stderr,"Client %d aborted in state %d. Probably the backend died while processing.\n",n,st->state);
372+
remains--;/* I've aborted */
373+
PQfinish(st->con);
374+
st->con=NULL;
375+
return;
380376
}
377+
if (PQisBusy(st->con))
378+
return;/* don't have the whole result yet */
381379

382380
switch (st->state)
383381
{

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp