【发布时间】:2011-04-16 20:26:09
【问题描述】:
我正在开发一个使用 pycurl 的 Web 服务客户端。客户端打开到流服务的连接并将其生成到单独的线程中。这是连接设置的精简版:
def _setup_connection(self):
self.conn = pycurl.Curl()
self.conn.setopt(pycurl.URL, FILTER_URL)
self.conn.setopt(pycurl.POST, 1)
.
.
.
self.conn.setopt(pycurl.HTTPHEADER, headers_list)
self.conn.setopt(pycurl.WRITEFUNCTION, self.local_callback)
def up(self):
if self.conn is None:
self._setup_connection()
self.perform()
现在,当我想关闭连接时,如果我打电话
self.conn.close()
我得到以下异常:
error: cannot invoke close() - perform() is currently running
这在某种程度上是有道理的,连接是不断打开的。我一直在寻找,似乎找不到任何方法来规避这个问题并干净地关闭连接。
【问题讨论】:
-
你有没有想过如何做到这一点?
标签: python multithreading pycurl