Open
Description
I encountered this while testing stuff on Wasm (cleaned stacktrace):
TypeError: waiting is not allowed on this thread
std::sync::mutex::Mutex<T>::lock
event_listener::sys::<impl event_listener::Inner<T>>::lock
event_listener::sys::<impl event_listener::Inner<T>>::remove
event_listener::_::<impl core::ops::drop::Drop for event_listener::InnerListener<T,B>>::drop::__drop_inner
event_listener::_::<impl core::ops::drop::Drop for event_listener::InnerListener<T,B>>
core::ptr::drop_in_place<event_listener::InnerListener<(),alloc::sync::Arc<event_listener::Inner<()>>>>
core::ptr::drop_in_place<alloc::boxed::Box<event_listener::InnerListener<(),alloc::sync::Arc<event_listener::Inner<()>>>>>
core::ptr::drop_in_place<core::pin::Pin<alloc::boxed::Box<event_listener::InnerListener<(),alloc::sync::Arc<event_listener::Inner<()>>>>>>
core::ptr::drop_in_place<event_listener::EventListener>
core::ptr::drop_in_place<core::option::Option<event_listener::EventListener>>
core::ptr::drop_in_place<async_channel::RecvInner<()>>
core::ptr::drop_in_place<event_listener_strategy::FutureWrapper<async_channel::RecvInner<()>>>
Which I think boils down to:
Recv
holdingRecvInner
RecvInner
holdingOption<EventListener>
EventListener
holdingInnerListener
InnerListener
drop implementation callingstd::Inner::remove()
std::Inner::remove()
callingstd::inner::lock()
std::inner::lock()
callingMutex::lock()
I think in this case spinlooping makes sense when running on Wasm?
Let me know if this issue should be moved to event-listener
instead.
Metadata
Metadata
Assignees
Labels
No labels