Refactor read_op + fail_op

This commit is contained in:
Vinnie Falco committed 2017-08-14 15:40:13 -07:00
1 parent 3652137718
commit fa087e19f1
12 files changed
+456 -570

No files matched your search

+1 -1
View File
@@ -251,7 +251,7 @@ close(close_reason const& cr, error_code& ec)
rd_close_ = true;
auto const mb = buffer_prefix(
clamp(rd_.fh.len),
rd_.buf.mutable_data());
rd_.buf.data());
if(rd_.fh.len > 0 && rd_.fh.mask)
detail::mask_inplace(mb, rd_.key);
detail::read_close(cr_, mb, code);
+1 -4
View File
@@ -202,10 +202,7 @@ operator()(error_code ec, std::size_t)
upcall:
BOOST_ASSERT(d.ws.wr_block_ == d.tok);
d.ws.wr_block_.reset();
d.ws.close_op_.maybe_invoke() ||
d.ws.ping_op_.maybe_invoke() ||
d.ws.wr_op_.maybe_invoke();
d_.invoke(ec, 0);
d_.invoke(ec);
}
}
File diff suppressed because it is too large. Load diff
@@ -177,11 +177,13 @@ open(role_type role)
rd_.cont = false;
rd_.done = true;
// Can't clear this because accept uses it
//rd_.buf.consume(rd_.buf.size());
//rd_.buf.reset();
rd_.fh.fin = false;
rd_close_ = false;
wr_close_ = false;
wr_block_.reset();
rd_block_.reset();
cr_.code = close_code::none;
ping_data_ = nullptr; // should be nullptr on close anyway
wr_.cont = false;
@@ -240,6 +242,8 @@ reset()
wr_close_ = false;
wr_.cont = false;
wr_block_.reset();
rd_block_.reset();
cr_.code = close_code::none;
ping_data_ = nullptr; // should be nullptr on close anyway
}
+3
View File
@@ -230,12 +230,15 @@ class stream
bool rd_close_; // read close frame
bool wr_close_; // sent close frame
token wr_block_; // op currenly writing
token rd_block_; // op currenly reading
ping_data* ping_data_; // where to put the payload
detail::pausation rd_op_; // paused read op
detail::pausation wr_op_; // paused write op
detail::pausation ping_op_; // paused ping op
detail::pausation close_op_; // paused close op
detail::pausation r_rd_op_; // paused read op (read)
detail::pausation r_close_op_; // paused close op (read)
close_reason cr_; // set from received close frame
rd_t rd_; // read state
wr_t wr_; // write state