base: fix lock issue in signal context destruction

Issue #2584
This commit is contained in:
Alexander Boettcher 2017-11-29 14:43:56 +01:00 committed by Christian Helmuth
parent 419a48aa06
commit a38ec2854a

View File

@ -230,9 +230,13 @@ void Signal_receiver::dissolve(Signal_context *context)
if (context->_receiver != this)
throw Context_not_associated();
Lock::Guard contexts_lock_guard(_contexts_lock);
{
Lock::Guard contexts_lock_guard(_contexts_lock);
_unsynchronized_dissolve(context);
Lock::Guard context_lock_guard(context->_lock);
_unsynchronized_dissolve(context);
}
Lock::Guard context_destroy_lock_guard(context->_destroy_lock);
}