You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@apr.apache.org by tr...@apache.org on 2009/11/08 19:14:37 UTC
svn commit: r833907 - /apr/apr/trunk/test/testsock.c
Author: trawick
Date: Sun Nov 8 18:14:37 2009
New Revision: 833907
URL: http://svn.apache.org/viewvc?rev=833907&view=rev
Log:
don't assume child process can both connect and close before parent can
both accept and look for EOF
(fixes intermittent failure seen on Linux and OpenSolaris)
Modified:
apr/apr/trunk/test/testsock.c
Modified: apr/apr/trunk/test/testsock.c
URL: http://svn.apache.org/viewvc/apr/apr/trunk/test/testsock.c?rev=833907&r1=833906&r2=833907&view=diff
==============================================================================
--- apr/apr/trunk/test/testsock.c (original)
+++ apr/apr/trunk/test/testsock.c Sun Nov 8 18:14:37 2009
@@ -247,9 +247,14 @@
rv = apr_socket_accept(&sock2, sock, p);
APR_ASSERT_SUCCESS(tc, "Problem with receiving connection", rv);
- /* The child closed the socket instantly */
+ /* The child closed the socket as soon as it could... */
rv = apr_socket_atreadeof(sock2, &atreadeof);
APR_ASSERT_SUCCESS(tc, "Determine whether at EOF, #3", rv);
+ if (!atreadeof) { /* ... but perhaps not yet; wait a moment */
+ apr_sleep(apr_time_from_msec(5));
+ rv = apr_socket_atreadeof(sock2, &atreadeof);
+ APR_ASSERT_SUCCESS(tc, "Determine whether at EOF, #4", rv);
+ }
ABTS_INT_EQUAL(tc, 1, atreadeof);
wait_child(tc, &proc);