+#ifdef TLS
+void tlsdestructor(void *v) {
+ uintptr_t count = (uintptr_t) v;
+ if (count > 1) {
+ if (pthread_setspecific(model->get_execution()->getPthreadKey(), (const void *)(count - 1))) {
+ printf("Destructor setup failed\n");
+ exit(-1);
+ }
+ return;
+ }
+ /* Finish thread properly */
+ model->switch_to_master(new ModelAction(THREAD_FINISH, std::memory_order_seq_cst, thread_current()));
+}
+#endif
+