aboutsummaryrefslogtreecommitdiff
path: root/src/env/__libc_start_main.c
diff options
context:
space:
mode:
authorRich Felker <dalias@aerifal.cx>2012-10-06 23:57:51 -0400
committerRich Felker <dalias@aerifal.cx>2012-10-06 23:57:51 -0400
commit00902c7384963192dda8a15938786a36dca7d7ab (patch)
treedf0a684e3b60c93a66be0bd5648f076304cc386d /src/env/__libc_start_main.c
parentdon't crash if TLS library is loaded into process with no thread pointer (diff)
downloadgrovel-00902c7384963192dda8a15938786a36dca7d7ab.tar.gz
grovel-00902c7384963192dda8a15938786a36dca7d7ab.tar.xz
make new TLS setup block even implementation-internals signals
this is needed to ensure async-cancel-safety, i.e. to make it safe to access TLS objects when async cancellation is enabled. otherwise, if cancellation were acter upon after the atomic fetch/add but before the thread saved the obtained memory, another access to the same TLS in the cancellation handler could end up performing the atomic fetch/add again, consuming more memory than is actually available and overflowing into other objects on the heap.
Diffstat (limited to 'src/env/__libc_start_main.c')
0 files changed, 0 insertions, 0 deletions