在调用data(){
return {
conversation: [
{
}
]
},
mounted(){
EventBus.$on('msg-ctr--push-msg-in-conversation', textMsg => {
this.conversation.push(textMsg)
// Didn't work doing scroll here
})
},
updated(){ <=== PUT IT HERE !!
var elem = this.$el
elem.scrollTop = elem.clientHeight;
},
之后 - p->start()
抛出shared_from_this
但正如您可以看到在bad_weak_ptr
完全启动后调用的p->start()
。
shared_ptr
link to working code (coliru) - unexplained bad_weak_ptr - exception is thrown ...
答案 0 :(得分:5)
您的问题是join
上有竞争条件。 main
可能正在退出,会破坏地图中的对象。地图中的shared_ptr
被破坏,调用你想要加入的对象的析构函数,但为时已晚:shared_ptr
想要使用的enable_shared_from_this
是吐司。然后(竞争条件)在对象自己的线程中,它试图在死weak_ptr
上从中获取共享,这导致抛出异常并在cout
上打印消息。