Enabling folly::Synchronized for non-default constructible objects
authorAndrey Kashin <acid@fb.com>
Mon, 18 Aug 2014 19:08:19 +0000 (12:08 -0700)
committerSara Golemon <sgolemon@fb.com>
Tue, 9 Sep 2014 21:22:22 +0000 (14:22 -0700)
commitd77b369f9f125edebd91168ebbc1317602b4087d
tree39a66ee7a35e975d9484be2dd251a328a2ae6c22
parent7ec1fc0e0e27ed56c1d18d33af9711a17e9ec750
Enabling folly::Synchronized for non-default constructible objects

Summary:
Currently folly::Synchronized can't be used with non-default
constructible types because copy and move constructors require
creation of datum_ before it's assignment.
To fix this we can initialize them in initializer-list and
handle guard creation using helper constructor

Test Plan:
fbconfig -r folly && fbmake runtests
Fixes compilation error: Synchronized started working for non-default
constructible types in my project(rfe).

Reviewed By: yuri@fb.com

Subscribers: dhruvbird

FB internal diff: D1502110
folly/Synchronized.h