diff options
| author | Chris McDonough <chrism@agendaless.com> | 2010-09-13 04:05:33 +0000 |
|---|---|---|
| committer | Chris McDonough <chrism@agendaless.com> | 2010-09-13 04:05:33 +0000 |
| commit | b847e0b4030ab6797ed8d996d133d1d8068aba83 (patch) | |
| tree | 9443a030d517b062e258c9fa6a2e63fdc2c04403 /repoze/bfg/request.py | |
| parent | 81d3b5412b43e4a104d0118ad4147402d787220e (diff) | |
| download | pyramid-b847e0b4030ab6797ed8d996d133d1d8068aba83.tar.gz pyramid-b847e0b4030ab6797ed8d996d133d1d8068aba83.tar.bz2 pyramid-b847e0b4030ab6797ed8d996d133d1d8068aba83.zip | |
allow callbacks to add other callbacks
Diffstat (limited to 'repoze/bfg/request.py')
| -rw-r--r-- | repoze/bfg/request.py | 10 |
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__ |
