about summary refs log tree commit diff stats
path: root/src/libtools/threads.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libtools/threads.c')
-rw-r--r--src/libtools/threads.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/libtools/threads.c b/src/libtools/threads.c
index f51f95c6..15a14422 100644
--- a/src/libtools/threads.c
+++ b/src/libtools/threads.c
@@ -134,6 +134,10 @@ static void emuthread_destroy(void* p)
 	emuthread_t *et = (emuthread_t*)p;
 	if(!et)
 		return;
+	#ifdef BOX32
+	if(!et->join && et->fnc)
+		to_hash_d(et->self);
+	#endif
 	FreeX64Emu(&et->emu);
 	box_free(et);
 }
@@ -177,6 +181,7 @@ void thread_set_emu(x64emu_t* emu)
 	#ifdef BOX32
 	if(box64_is32bits) {
 		et->self = (uintptr_t)pthread_self();
+		et->hself = to_hash(et->self);
 	}
 	#endif
 	pthread_setspecific(thread_key, et);