Move destructor and Start to implementation

reviewable/pr14459/r1
Vijay Pai 7 years ago
parent 8a9e56eddb
commit 2aa7f88294
  1. 21
      src/core/lib/gprpp/thd.h
  2. 21
      src/core/lib/gprpp/thd_posix.cc
  3. 21
      src/core/lib/gprpp/thd_windows.cc

@ -39,26 +39,9 @@ class Thread {
Thread(const char* thd_name, void (*thd_body)(void* arg), void* arg,
bool* success = nullptr);
~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_);
}
}
~Thread();
void Start() {
gpr_mu_lock(&mu_);
if (alive_) {
started_ = true;
gpr_cv_signal(&ready_);
}
gpr_mu_unlock(&mu_);
}
void Start();
void Join();
static void Init();

@ -141,6 +141,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_) {
pthread_join(pthread_t(id_), nullptr);

@ -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_;

Loading…
Cancel
Save