button-chen opened a new issue, #456:
URL: https://github.com/apache/rocketmq-client-cpp/issues/456

   问题:
   多线程并发调用 producer->send() 很容易得到错误消息:GetTransport of:xxx get timed_mutex 
timeout 除了libevent的版本问题,还有一个原因是gcc版本的bug
   
   原因:
   if (!lock.try_lock_for(std::chrono::seconds(m_tcpTransportTryLockTimeout))) {
        LOG_ERROR("GetTransport of:%s get timed_mutex timeout", addr.c_str());
        std::shared_ptr<TcpTransport> pTcp;
        return pTcp;
   }
   
   gcc4.8.5的情况下,try_lock_for会立即返回,并不会等待期待的m_tcpTransportTryLockTimeout时长。 
升级到4.9.0之后即可解决。
   
   **std::timed_mutex::try_lock_for bug: 
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54562**
   
   @ShannonDing 建议在首页说明使用gcc版本应该高于等于4.9.0


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to