我正在使用 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
这在某种程度上是有道理的,连接是不断打开的。我一直在四处寻找,似乎找不到任何方法来规避这个问题并干净地关闭连接。