race in Future destructor
authorHans Fugal <fugalh@fb.com>
Wed, 30 Apr 2014 16:40:08 +0000 (09:40 -0700)
committerDave Watson <davejwatson@fb.com>
Tue, 20 May 2014 19:53:57 +0000 (12:53 -0700)
commitc5c3f9f85b52d5e5aa0399c0fdce9916ede1c393
treeffe1432d15dc59324ee15142ea960d6fd3442b9f
parent570276811b1e6ac63a18eef06af429ee3f4b12db
race in Future destructor

Summary:
@mnd wrote some Wangle code that would trip up with a `bad_function_call` exception. This Shouldn't Happen™ but the exception comes from trying to call a `std::function` which is null. We pretty thoroughly examined his usage and didn't find any problems, and this patch seems to make the error go away. See #4207781 for more details.

And reasoning about it, it makes sense. Inline comments explain the race.

Test Plan: Alas, I haven't been able to get a minimal repro and therefore a regression unit test. It's a hard race to trigger. I still don't understand why Matt's code does it.

Reviewed By: davejwatson@fb.com

FB internal diff: D1304001
folly/wangle/Future-inl.h