Метод Pycurl execute (), модель выполнения writefunc - PullRequest
0 голосов
/ 22 декабря 2011

Когда pycurl выполняет свой метод execute (), скрипт Python ждет, пока он не будет выполнен (WRITEFUNCTION) или Python немедленно переходит к следующей строке, даже если WRITEFUNCTION не был введен или не вернул результат? Э.Г.

curl.setopt(pycurl.WRITEFUNCTION, receive)
curl.perform()
some_call() # is this line immeditely executed? can I expect receive() has already exited?

1 Ответ

1 голос
/ 22 декабря 2011

pycurl является оболочкой для реализации C (libcurl), и реализация C вызывает свой обратный вызов WRITEFUNCTION во время выполнения функций curl_easy_perform или curl_multi_perform (эквивалент pycurl perform).

Таким образом, вы можете ожидать завершения обратного вызова до того, как perform вернется.т.е. вы можете ожидать, что some_call () будет выполнено после завершения receive.

...