[futures.shared_future]
llvm-svn: 112990
Cr-Mirrored-From: sso://chromium.googlesource.com/_direct/external/github.com/llvm/llvm-project
Cr-Mirrored-Commit: ead85506a763516f78f3671cde20c22fb7143312
diff --git a/src/future.cpp b/src/future.cpp
index a008276..924a684 100644
--- a/src/future.cpp
+++ b/src/future.cpp
@@ -240,4 +240,21 @@
__state_->set_exception_at_thread_exit(__p);
}
+shared_future<void>::~shared_future()
+{
+ if (__state_)
+ __state_->__release_shared();
+}
+
+shared_future<void>&
+shared_future<void>::operator=(const shared_future& __rhs)
+{
+ if (__rhs.__state_)
+ __rhs.__state_->__add_shared();
+ if (__state_)
+ __state_->__release_shared();
+ __state_ = __rhs.__state_;
+ return *this;
+}
+
_LIBCPP_END_NAMESPACE_STD