Fix invokable order of invocation:

The call to the final handler in a composed operation MUST be
the last thing performed, as the handler may cause the end of
object lifetimes before it returns.
This commit is contained in:
seelabs
2016-05-05 11:13:54 -04:00
committed by Vinnie Falco
parent 4104eca1f1
commit e552ba7c2d
3 changed files with 3 additions and 3 deletions

View File

@ -175,8 +175,8 @@ stream<NextLayer>::close_op<Handler>::operator()(
d.ws.error_ = true;
if(d.ws.wr_block_ == &d)
d.ws.wr_block_ = nullptr;
d.h(ec);
d.ws.rd_op_.maybe_invoke();
d.h(ec);
}
} // websocket

View File

@ -497,8 +497,8 @@ operator()(error_code ec,std::size_t bytes_transferred, bool again)
d.ws.error_ = true;
if(d.ws.wr_block_ == &d)
d.ws.wr_block_ = nullptr;
d.h(ec);
d.ws.wr_op_.maybe_invoke();
d.h(ec);
}
} // websocket

View File

@ -256,8 +256,8 @@ operator()(
deallocate(d.tmp, d.tmp_size, d.h);
d.tmp = nullptr;
}
d.h(ec);
d.ws.rd_op_.maybe_invoke();
d.h(ec);
}
} // websocket