aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/lib/gprpp/thd_windows.cc
diff options
context:
space:
mode:
authorGravatar Vijay Pai <vpai@google.com>2018-02-21 11:31:28 -0800
committerGravatar Vijay Pai <vpai@google.com>2018-02-21 11:31:28 -0800
commit2aa7f88294ad25b4653eba6fef23f71ed7972c16 (patch)
tree4327273be7f26e4e4bf168dc1d329fb317a9443d /src/core/lib/gprpp/thd_windows.cc
parent8a9e56eddbc05d853ed3da6cf76ee2a81740acfc (diff)
Move destructor and Start to implementation
Diffstat (limited to 'src/core/lib/gprpp/thd_windows.cc')
-rw-r--r--src/core/lib/gprpp/thd_windows.cc21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/core/lib/gprpp/thd_windows.cc b/src/core/lib/gprpp/thd_windows.cc
index 6e2095fe03..efbed30ac6 100644
--- a/src/core/lib/gprpp/thd_windows.cc
+++ b/src/core/lib/gprpp/thd_windows.cc
@@ -112,6 +112,27 @@ Thread::Thread(const char* thd_name, void (*thd_body)(void* arg), void* arg,
}
}
+Thread::~Thread() {
+ if (!alive_) {
+ // This thread never existed, so nothing to do
+ } else {
+ GPR_ASSERT(joined_);
+ }
+ if (real_) {
+ gpr_mu_destroy(&mu_);
+ gpr_cv_destroy(&ready_);
+ }
+}
+
+void Thread::Start() {
+ gpr_mu_lock(&mu_);
+ if (alive_) {
+ started_ = true;
+ gpr_cv_signal(&ready_);
+ }
+ gpr_mu_unlock(&mu_);
+}
+
void Thread::Join() {
if (alive_) {
thd_info* info = (thd_info*)id_;