提交 26b1472c 编写于 作者: Y youngwolf

Some more comments about the thread safety for socket::get_statistic().

上级 06112dd8
......@@ -89,7 +89,7 @@ public:
//because we use objects pool(REUSE_OBJECT been defined), so, strictly speaking, this virtual
//function must be rewrote, but we don't have member variables to initialize but invoke father's
//reset() directly, so, it can be omitted, but we keep it for possibly future using
virtual void reset() { super::reset();}
virtual void reset() {super::reset();}
protected:
virtual void on_recv_error(const asio::error_code& ec)
......
......@@ -202,9 +202,11 @@ public:
size_t msg_handling_interval() const {return msg_handling_interval_;}
//in ascs, it's thread safe to access stat without mutex, because for a specific member of stat, ascs will never access it concurrently.
//but user can access stat out of ascs via get_statistic function, although user can only read it, there's still a potential risk,
//so whether it's thread safe or not depends on std::chrono::system_clock::duration.
//i can make it thread safe in ascs, but is it worth to do so? this is a problem.
//but user can access stat out of ascs via get_statistic function, although user can only read it, there's still a potential risk (especially
// on 32 bit system, most likely, it will not be thread safe), so whether it's thread safe or not depends on std::chrono::system_clock::duration.
//i can make it thread safe in ascs, but is it worth to do so? because it affect performance a lot, this is a problem.
//by the way, only with macro ASCS_FULL_STATISTIC, above potential risk can happen, even it happens, it just corrupt data, not memory, so just
// logic error, no memory error (such as segment fault, bad memory, etc.) will occur.
const struct statistic& get_statistic() const {return stat;}
//get or change the packer at runtime
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册