summaryrefslogtreecommitdiff
path: root/repoze/bfg/request.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/bfg/request.py')
-rw-r--r--repoze/bfg/request.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/repoze/bfg/request.py b/repoze/bfg/request.py
index 84a5660ef..6a7ce14ac 100644
--- a/repoze/bfg/request.py
+++ b/repoze/bfg/request.py
@@ -88,9 +88,10 @@ class Request(WebobRequest):
self.response_callbacks = callbacks
def _process_response_callbacks(self, response):
- for callback in self.response_callbacks:
+ callbacks = self.response_callbacks
+ while callbacks:
+ callback = callbacks.pop(0)
callback(self, response)
- self.response_callbacks = ()
def add_finished_callback(self, callback):
"""
@@ -148,9 +149,10 @@ class Request(WebobRequest):
self.finished_callbacks = callbacks
def _process_finished_callbacks(self):
- for callback in self.finished_callbacks:
+ callbacks = self.finished_callbacks
+ while callbacks:
+ callback = callbacks.pop(0)
callback(self)
- self.finished_callbacks = ()
# override default WebOb "environ['adhoc_attr']" mutation behavior
__getattr__ = object.__getattribute__