Je travaille sur un client pour un service web utilisant pycurl. Le client ouvre une connexion à un service de flux et l'engendre dans un thread séparé. Voici une version dépouillée de la façon dont la connexion est établie:Impossible de fermer un flux ouvert avec pycurl
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()
Maintenant, quand je veux fermer la connexion vers le bas, si je l'appelle
self.conn.close()
je reçois l'exception suivante:
error: cannot invoke close() - perform() is currently running
Ce qui, d'une certaine manière, a du sens, la connexion est constamment ouverte. J'ai été la chasse autour et ne peux pas sembler trouver un moyen de contourner ce problème et de fermer la connexion proprement.
Avez-vous déjà réussi à comprendre comment faire cela? – Tereno
voir http://stackoverflow.com/questions/6031921/how-to-halt-kill-stop-or-close-a-pycurl-request-on-a-stream-example-given-using –