2011-12-22 88 views
0

当pycurl执行它的perform()方法时, 会执行Python脚本,直到它被执行(WRITEFUNCTION)或python 立即进入下一行,即使WRITEFUNCTION尚未输入或没有返回结果? 例如Pycurl执行()方法,writefunc执行模型

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

回答

1

pycurl是围绕着C实现的(libcurl的)的包装,并在执行过程中的C实现调用它WRITEFUNCTION回调是curl_easy_performcurl_multi_perform职能(pycurl perform的等价物)。

因此,您可以预期回调在perform返回之前完成执行。即在receive完成后,您可以预计执行some_call()