apply vmlock wait to __unmapself in pthread_exit

This commit is contained in:
Rich Felker 2015-04-10 03:47:42 -04:00
parent f08ab9e61a
commit a2d3053354

View File

@ -108,6 +108,10 @@ _Noreturn void __pthread_exit(void *result)
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);