Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/marian-nmt/Simple-WebSocket-Server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoreidheim <eidheim@gmail.com>2018-07-11 09:42:13 +0300
committereidheim <eidheim@gmail.com>2018-07-11 09:42:13 +0300
commit611f17c7ceb9ae784cb5a7d5ddb1c2634b056560 (patch)
tree8f18e64ac92528726ba6df8f1ff30dacf0efbeb4 /server_ws.hpp
parente4d8f2c7c6959a37febb69371f61bedc8fb0dbcc (diff)
All handlers in send queue is now called on error
Diffstat (limited to 'server_ws.hpp')
-rw-r--r--server_ws.hpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/server_ws.hpp b/server_ws.hpp
index f579459..d547b79 100644
--- a/server_ws.hpp
+++ b/server_ws.hpp
@@ -233,22 +233,30 @@ namespace SimpleWeb {
auto lock = self->handler_runner->continue_lock();
if(!lock)
return;
- auto send_queued = self->send_queue.begin();
- if(send_queued->callback)
- send_queued->callback(ec);
if(!ec) {
- self->send_queue.erase(send_queued);
+ auto it = self->send_queue.begin();
+ if(it->callback)
+ it->callback(ec);
+ self->send_queue.erase(it);
if(self->send_queue.size() > 0)
self->send_from_queue();
}
- else
+ else {
+ // All handlers in the queue is called with ec:
+ for(auto &send_data : self->send_queue) {
+ if(send_data.callback)
+ send_data.callback(ec);
+ }
self->send_queue.clear();
+ }
}));
}
else {
- auto send_queued = self->send_queue.begin();
- if(send_queued->callback)
- send_queued->callback(ec);
+ // All handlers in the queue is called with ec:
+ for(auto &send_data : self->send_queue) {
+ if(send_data.callback)
+ send_data.callback(ec);
+ }
self->send_queue.clear();
}
}));