if (is_array($options) === false
) { throw InvalidArgument::
create(2, '$options', 'array',
gettype($options));
} $multihandle =
curl_multi_init();
$subrequests =
[];
$subhandles =
[];
$class =
get_class($this);
foreach ($requests as $id =>
$request) { $subrequests[$id] =
new $class();
$subhandles[$id] =
$subrequests[$id]->
get_subrequest_handle($request['url'
],
$request['headers'
],
$request['data'
],
$request['options'
]);
$request['options'
]['hooks'
]->
dispatch('curl.before_multi_add',
[&
$subhandles[$id]]);
curl_multi_add_handle($multihandle,
$subhandles[$id]);
} $completed = 0;
$responses =
[];
$subrequestcount =
count($subrequests);
$request['options'
]['hooks'
]->
dispatch('curl.before_multi_exec',
[&
$multihandle]);
do {