The lambda function that was called by the timer was capturing the this pointer of the PnrContext which held the request and the timer itself.
But PnrContext was move-constructible, which caused the this pointer copied by the lambda to be invalidated to the first move, which was happening because the PnrContext was temporarily created before to be given to the mPnrs map (implicit move).
This commit fixes the problem by deleting PnrContext move-constructor and making mPnrs map to hold unique pointers on PnrContext instead of direct PnrContext instances.