[HttpClient] workaround curl_multi_select() issue

This commit is contained in:
Nicolas Grekas 2019-10-15 09:35:54 +02:00
parent 927ae8ad7f
commit e635491c96
3 changed files with 7 additions and 3 deletions

View File

@ -48,7 +48,6 @@ install:
- php composer.phar global require --no-progress --no-scripts --no-plugins symfony/flex dev-master
- git config --global user.email ""
- git config --global user.name "Symfony"
- php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit
- php .github/build-packages.php "HEAD^" src\Symfony\Bridge\PhpUnit src\Symfony\Contracts
- IF %APPVEYOR_REPO_BRANCH%==master (SET COMPOSER_ROOT_VERSION=dev-master) ELSE (SET COMPOSER_ROOT_VERSION=%APPVEYOR_REPO_BRANCH%.x-dev)
- php composer.phar update --no-progress --no-suggest --ansi

View File

@ -274,6 +274,11 @@ final class CurlResponse implements ResponseInterface
*/
private static function select(CurlClientState $multi, float $timeout): int
{
if (\PHP_VERSION_ID < 70123 || (70200 <= \PHP_VERSION_ID && \PHP_VERSION_ID < 70211)) {
// workaround https://bugs.php.net/76480
$timeout = min($timeout, 0.01);
}
return curl_multi_select($multi->handle, $timeout);
}

View File

@ -597,9 +597,9 @@ abstract class HttpClientTestCase extends TestCase
{
$client = $this->getHttpClient(__FUNCTION__);
$response = $client->request('GET', 'http://localhost:8057/timeout-header', [
'timeout' => 0.5,
'timeout' => 0.9,
]);
usleep(510000);
sleep(1);
$this->assertSame(200, $response->getStatusCode());
}