Use a base hook rather than a member hook for EventBase callbacks
authorChristopher Dykes <cdykes@fb.com>
Tue, 16 Aug 2016 22:44:03 +0000 (15:44 -0700)
committerFacebook Github Bot 8 <facebook-github-bot-8-bot@fb.com>
Tue, 16 Aug 2016 22:53:29 +0000 (15:53 -0700)
commit5d242d14dcca79124ed477b246730353f6f76dc2
tree6c37b227288bd53d7edf9e9e332936cec372d934
parentcf27a11e65f7e792e0dc597e6eb7c209b1c84779
Use a base hook rather than a member hook for EventBase callbacks

Summary:
Using boost intrusive member hooks in complex inheritence heirarchies under MSVC is [unsupported](http://www.boost.org/doc/libs/1_61_0/doc/html/intrusive/usage.html#intrusive.usage.usage_member_hook), and, in combination with a [regression in VS 2015 Update 2](https://connect.microsoft.com/VisualStudio/Feedback/Details/2555433) that is not fixed in Update 3, the async socket tests that use this compile under MSVC, but fail at runtime because the hook pointer ends up pointing at the node's vtable rather than the hook.
This just works around the issue by using a base hook instead.

Reviewed By: djwatson

Differential Revision: D3724521

fbshipit-source-id: a55e36a2e79a15d9943b6090f6194fd480e19074
folly/io/async/EventBase.h