summaryrefslogtreecommitdiff
path: root/server-tools/instance-manager/thread_registry.h
diff options
context:
space:
mode:
Diffstat (limited to 'server-tools/instance-manager/thread_registry.h')
-rw-r--r--server-tools/instance-manager/thread_registry.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/server-tools/instance-manager/thread_registry.h b/server-tools/instance-manager/thread_registry.h
index 6dc320a8533..503d24e5fb0 100644
--- a/server-tools/instance-manager/thread_registry.h
+++ b/server-tools/instance-manager/thread_registry.h
@@ -67,13 +67,17 @@
class Thread_info
{
public:
- Thread_info();
- Thread_info(pthread_t thread_id_arg);
+ Thread_info(pthread_t thread_id_arg, bool send_signal_on_shutdown_arg);
friend class Thread_registry;
+
+private:
+ Thread_info();
+
private:
pthread_cond_t *current_cond;
Thread_info *prev, *next;
pthread_t thread_id;
+ bool send_signal_on_shutdown;
};
@@ -98,6 +102,10 @@ public:
int cond_timedwait(Thread_info *info, pthread_cond_t *cond,
pthread_mutex_t *mutex, struct timespec *wait_time);
private:
+ void interrupt_threads();
+ void wait_for_threads_to_unregister();
+
+private:
Thread_info head;
bool shutdown_in_progress;
pthread_mutex_t LOCK_thread_registry;