This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [libc-alpha] mt-application hanging in exit()


On Tue, 22 Jan 2002, Bertold Kolics wrote:

> Just one more comment on this (and that is why I think it should be clearly
> indicated in the documentation of glibc that use of pthread_sigmask is
> mandatory on Linux): UNIX International compliant systems make sigprocmask()
> equivalent to pthread_sigmask().

One implementor representing IBM's operating system already came
forward to tell you that your code essentially works by fluke on
that system.

You can never prove that something works with empirical tests, only
that it doesn't work.

In the case of platform interfaces, you are not only concerned with
whether something works presently, but whether it can be relied upon
in other releases of the same platform. Something that works today,
but is not documented, may break your program tomorrow.

Why should glibc support features of other platforms that are not
even documented as working on those platforms? That is the path
to lunacy.

There is no requirement for Unix compliant systems to make the two
functions unconditionally equivalent. The standard calls for them to be
equivalent *in single-threaded applications*.

In GNU/Linux, a single-threaded application is one that is 
compiled without the preprocessor symbol _REENTRANT and without
linking to libpthread.

Being single or multithreaded is not a run-time state which changes with
your first successful call to pthread_create; it's determined when
the program is built.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]