[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

nptl 0.35



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

I've uploaded

  http://people.redhat.com/drepper/nptl/nptl-0.35.tar.bz2
   ftp://people.redhat.com/drepper/nptl/nptl-0.35.tar.bz2

which corresponds to the CVS glibc as of 2003-04-12T11:00:00-0700.

The main changes:

- - one reported bug in pthread_detach() fixed.  It failed when the thread
  had already terminated but wasn't joined or detached

- - CPU time clocks weren't reset after fork()

- - C++ destructors incorporated into cancellation handling.

This last point is the main piece for this round.  Quite a lot of work
was necessary to support it.  What it means is that if you use C++ code
in threaded apps and define local variables with non-trivial
destructors, these destructors are now called if the thread is
cancelled.  No need to resort to using pthread_cleanup_{push,pop} for
C++ anymore.

So far the support is there for x86.  I tried to test hammer but got
held back by a compiler bug.  This support requires a new feature in gcc
which is in gcc from the 3.3 branch and will soon also be in Red Hat's
3.2 branch.  Old compilers can still be used to build glibc+NPTL but the
C++ integration won't work.

Support for the old-style cancellation is of course still there but the
registered handlers are _not_ called in the right order relative to the
C++ destructors and the new-style cleanup.

As for the work needed for other architectures, beside a new gcc you
need to provide unwind info for the syscall wrappers of cancellation
points.  The info can be added to the sysdep-cancel.h macros.  Look at
the x86 file.  ia64 might already be ready, I haven't checked it.  For
the others, learn to hand-generate the info, it's not too hard.

- -- 
- --------------.                        ,-.            444 Castro Street
Ulrich Drepper \    ,-----------------'   \ Mountain View, CA 94041 USA
Red Hat         `--' drepper at redhat.com `---------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQE+mGHA2ijCOnn/RHQRAhCDAKCLDbCyvX7tLicffF2rsFoyGVNrHACeMd2k
lGohVWk6jkZpHO+mQ1BBQbQ=
=WbF5
-----END PGP SIGNATURE-----





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]