The fix for 6929067 introduced a check for growable stacks by parsing /proc/self/maps when setting up and tearing down the stack guard pages. This can become a bottleneck when large numbers of threads start or terminate around the same time. Growable stacks are only expected in the main/initial thread as they are not used by the current day threads libraries. We can remove the bottleneck by only checking the stack bounds for the initial thread. But in case of future changes we maintain the existing behaviour in debug mode and add a check that if we find a growable stack that it does indeed belong to the initial thread.