Make outstanding LoopKeepAlive hold EventBase destructor
Summary:
LoopKeepAlive handle can be grabbed to signal that some external event will later be scheduled on the EventBase via runInEventBaseThread. Usually the code which will be calling runInEventBaseThread only has a raw pointer to an EventBase, so it doesn't have any way to know it was destroyed.
This change ensures that EventBase destructor will keep running the event loop until all such LoopKeepAlive handles are released.
Reviewed By: yfeldblum
Differential Revision:
D3323835
fbshipit-source-id:
4071dae691a61dfebe2f1759cf99f661b161fa4a