Summary: FlipperState may be updated from multiple threads, so it needs synchronization. Note the comments in the diff about why we drop the lock before calling out to the update listener -- this can be changed if necessary in the future.
Reviewed By: jknoxville
Differential Revision: D18095471
fbshipit-source-id: 95d558394ae1a9b7583e5a61969e1eeda6448cff