apply vmlock wait to __unmapself in pthread_exit
diff --git a/src/thread/pthread_create.c b/src/thread/pthread_create.c
index 08c5f4f..33808ce 100644
--- a/src/thread/pthread_create.c
+++ b/src/thread/pthread_create.c
@@ -108,6 +108,10 @@
if (self->robust_list.off)
__syscall(SYS_set_robust_list, 0, 3*sizeof(long));
+ /* Since __unmapself bypasses the normal munmap code path,
+ * explicitly wait for vmlock holders first. */
+ __vm_wait();
+
/* The following call unmaps the thread's stack mapping
* and then exits without touching the stack. */
__unmapself(self->map_base, self->map_size);