Use usleep instead of select for timeouts in PostgresNode.pm
authorAndrew Dunstan <andrew@dunslane.net>
Mon, 17 Jul 2017 19:22:37 +0000 (15:22 -0400)
committerAndrew Dunstan <andrew@dunslane.net>
Mon, 17 Jul 2017 19:22:37 +0000 (15:22 -0400)
select() for pure timeouts is not portable, and in particular doesn't
work on Windows.

Discussion: https://postgr.es/m/186943e0-3405-978d-b19d-9d3335427c86@2ndQuadrant.com

src/test/perl/PostgresNode.pm

index bb2f39e508984fba32f082648a4db42ed39ce1d2..4f414c3c03f9845eaa2fbc230f850f72fbfb28cd 100644 (file)
@@ -93,6 +93,7 @@ use RecursiveCopy;
 use Socket;
 use Test::More;
 use TestLib ();
+use Time::HiRes qw(usleep);
 use Scalar::Util qw(blessed);
 
 our @EXPORT = qw(
@@ -1248,7 +1249,7 @@ sub poll_query_until
                }
 
                # Wait 0.1 second before retrying.
-               select undef, undef, undef, 0.1;
+               usleep(100000);
 
                $attempts++;
        }