Skip to content

Commit a7ad25e

Browse files
committed
fix Thread Restart failed problem
1 parent 13ecea4 commit a7ad25e

File tree

2 files changed

+6
-1
lines changed

2 files changed

+6
-1
lines changed

pink/examples/bg_thread.cc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ int main() {
5656
sleep(1);
5757
}
5858

59+
5960
qsize = pqsize = 0;
6061
std::cout << "Limit queue BGTask... " << std::endl;
6162
for (int i = 0; i < 10; i++) {
@@ -86,6 +87,9 @@ int main() {
8687
}
8788
std::cout << std::endl << std::endl;
8889

90+
std::cout << "Restart BGThread" << std::endl;
91+
t.StopThread();
92+
t.StartThread();
8993
std::cout << "Time BGTask... " << std::endl;
9094
for (int i = 0; i < 10; i++) {
9195
int *pi = new int(i);

pink/src/pink_thread.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ void* Thread::RunThread(void *arg) {
3030

3131
int Thread::StartThread() {
3232
slash::MutexLock l(&running_mu_);
33+
should_stop_ = false;
3334
if (!running_) {
3435
running_ = true;
3536
return pthread_create(&thread_id_, nullptr, RunThread, (void *)this);
@@ -38,8 +39,8 @@ int Thread::StartThread() {
3839
}
3940

4041
int Thread::StopThread() {
41-
should_stop_ = true;
4242
slash::MutexLock l(&running_mu_);
43+
should_stop_ = true;
4344
if (running_) {
4445
running_ = false;
4546
return pthread_join(thread_id_, nullptr);

0 commit comments

Comments
 (0)