8000 [HttpClient] skip executing the multi handle when it's freed already · symfony/symfony@a580688 · GitHub
[go: up one dir, main page]

Skip to content

Commit a580688

Browse files
[HttpClient] skip executing the multi handle when it's freed already
1 parent 4f83848 commit a580688

File tree

1 file changed

+4
-6
lines changed

1 file changed

+4
-6
lines changed

src/Symfony/Component/HttpClient/CurlHttpClient.php

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -320,18 +320,16 @@ public function request(string $method, string $url, array $options = []): Respo
320320
*/
321321
public function stream($responses, float $timeout = null): ResponseStreamInterface
322322
{
323-
if (!\is_resource($this->multi->handle) && !$this->multi->handle instanceof \CurlMultiHandle) {
324-
$responses = [];
325-
}
326-
327323
if ($responses instanceof CurlResponse) {
328324
$responses = [$responses];
329325
} elseif (!is_iterable($responses)) {
330326
throw new \TypeError(sprintf('"%s()" expects parameter 1 to be an iterable of CurlResponse objects, "%s" given.', __METHOD__, \is_object($responses) ? \get_class($responses) : \gettype($responses)));
331327
}
332328

333-
$active = 0;
334-
while (\CURLM_CALL_MULTI_PERFORM === curl_multi_exec($this->multi->handle, $active));
329+
if (\is_resource($this->multi->handle) || $this->multi->handle instanceof \CurlMultiHandle) {
330+
$active = 0;
331+
while (\CURLM_CALL_MULTI_PERFORM === curl_multi_exec($this->multi->handle, $active));
332+
}
335333

336334
return new ResponseStream(CurlResponse::stream($responses, $timeout));
337335
}

0 commit comments

Comments
 (0)
0