This is the mail archive of the
mailing list for the glibc project.
Re: malloc patch for 2.2.4
> Wolfram Gloger <Wolfram.Gloger@dent.med.uni-muenchen.de> writes:
> |> > Thanks, I've applied the patch.
> |> Thanks. However, I'm still seeing the fork/malloc SMP problem on my
> |> machine... :-(
> I'd guess it's because the compiler has the full right to forget about the
> local variable and reload from the global one anyway.
First of all, I'm still suspecting a completely different problem to
cause the weird SMP crashes, I'm seeing seemingly random stack/memory
Second, _if_ the compiler would actually reload from the global
variable in this case (strictly speaking it has the right to do so
under ANSI C), I'd consider it _unsuitable_ for threaded programs.
There would definitely need to be a switch to turn this off.
It is generally considered a necessity that a system for multi-thread
applications expands at least slightly (in the above case: extremely
minimally IMHO) on the strict POSIX memory visibilty gurantees, see
e.g. the comp.programming.threads FAQ,
Q56, Q180 and in particular the second answer to Q202.