Bug fix: look for addresses based on fprintf *in addition* to errno.
authorOrion Lawlor <olawlor@acm.org>
Tue, 13 Apr 2004 22:53:29 +0000 (22:53 +0000)
committerOrion Lawlor <olawlor@acm.org>
Tue, 13 Apr 2004 22:53:29 +0000 (22:53 +0000)
commit81e117ab4db0e8e7434228b60adca1a2803243b2
tree0362fdc46353bbdf643e007cd35e36d53f16d62f
parent8f47b05fba1bac9b3cb7b18ac87f6a5fb197e27d
Bug fix: look for addresses based on fprintf *in addition* to errno.
This should prevent the "hang at shutdown" bug under MacOS X.

I noticed I seem to be using errno, not fprintf, to figure out
where shared libraries live.  This is really stupid, because errno
is secretly a thread-private variable on many machines.  Adding
fprintf's address actually shrinks the range found by isomalloc
dramatically.

My little standalone 'dev/unix/mmap' test shows that you can
overwrite *any* address using mmap(MAP_FIXED) under OS X,
with no errors at all, so it's likely we were blowing away a few
pages of dynamically linked libraries before.

The long-term answer to this may be to *manually* search for
a usable address range, and store the range in the machine config,
instead of the current (complicated, error-prone) automated
search.
src/conv-core/isomalloc.c