public function testCanCloseAll() { $m = curl_multi_init(); $b = new puzzle_adapter_curl_BatchContext($m, true); $h = curl_init(); $t = new puzzle_adapter_Transaction(new puzzle_Client(), new puzzle_message_Request('GET', 'http://httbin.org')); $b->addTransaction($t, $h); $b->removeAll(); $this->assertFalse($b->isActive()); $this->assertEquals(0, count($this->readAttribute($b, 'handles'))); curl_multi_close($m); }
private function throwException(Exception $e, puzzle_adapter_curl_BatchContext $context) { if ($context->throwsExceptions() || $e instanceof puzzle_exception_RequestException && $e->getThrowImmediately()) { $context->removeAll(); $this->releaseMultiHandle($context->getMultiHandle()); throw $e; } }