Skip to content

Instantly share code, notes, and snippets.

@teepark
Created January 14, 2014 00:11
Show Gist options
  • Save teepark/8410559 to your computer and use it in GitHub Desktop.
Save teepark/8410559 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# vim: fileencoding=utf8:et:sw=4:ts=8:sts=4
from cStringIO import StringIO
import select
import pycurl
c1 = pycurl.Curl()
c2 = pycurl.Curl()
body1 = StringIO()
body2 = StringIO()
c1.setopt(pycurl.URL, "http://www.google.com/")
c1.setopt(pycurl.WRITEFUNCTION, lambda data: body1.write(data) or len(data))
c2.setopt(pycurl.URL, "http://www.yahoo.com/")
c2.setopt(pycurl.WRITEFUNCTION, lambda data: body2.write(data) or len(data))
multi = pycurl.CurlMulti()
multi.add_handle(c1)
multi.add_handle(c2)
while 1:
ret, active_fds = multi.perform()
print "multi.perform:", (ret, active_fds)
if ret != pycurl.E_CALL_MULTI_PERFORM:
break
fdset = multi.fdset()
print "multi.fdset:", fdset
print "select:", select.select(*(fdset + (1.0,)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment