diff options
author | 2018-02-21 11:31:28 -0800 | |
---|---|---|
committer | 2018-02-21 11:31:28 -0800 | |
commit | 2aa7f88294ad25b4653eba6fef23f71ed7972c16 (patch) | |
tree | 4327273be7f26e4e4bf168dc1d329fb317a9443d /src/core/lib/gprpp/thd_windows.cc | |
parent | 8a9e56eddbc05d853ed3da6cf76ee2a81740acfc (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.cc | 21 |
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_; |