Deadlock is fixed in EventDispatcherImpl class.
Locks are added for map of requests in RequestTimeoutHandlerImpl class.
Refactoring in EventDispatcherImpl:
observers_ is a redundant member of class EventDispatcherImpl, because the function raise_event uses local variable (ObserverVector observers;)
It is not correct to use erase for mobileobservers, but use removeif for **observers** in remove_mobile_observer_from_vector.
Fixes #3817
This PR is ready for review.
Risk
This PR makes no API changes.
Summary
Deadlock is fixed in EventDispatcherImpl class.
Locks are added for map of requests in RequestTimeoutHandlerImpl class. Refactoring in EventDispatcherImpl:
CLA