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

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


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

cancellation support changes


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

I've checked in a bunch of changes to support cancellation handling whic
interacts with C++.  This requires that we have unwind info which in
turn requires that functions which can cause (directly or indirectly)
cancellation to not be marked with throw().  The patches introduce a
minimal set of these changes.  There might be more changes necessary.

The next steps are big, too.  There are two problems remaining:

 - make sure that all code paths which can lead to cancellation points
   are compiled with unwind info; this means adding a lot of
   -fexceptions.  It should be done individually, not en gros.

 - functions which are in POSIX and not listed in the tables in section
   2.9.5.2 have to be written in a way which doesn't cause cancellation.
   I've thought about this a bit.  Using macros in include/unistd.h or
   so is too dangerous.  It's too easy to pick the wrong code since
   there is no easy way to control it.  So we better modify the sources.

   Note that before making the functions in libc itself cancelable we
   didn't have the problem.  Using __libc_open for instance meant that
   no cancellation could happen.  We'll have to go through the sources
   again and make those changes.

   One possible optimization which can be applied while doing this is
   what I started with the not-cancel.h files.  I haven't done much
   using them since I first want to get some feedback.

- -- 
- --------------.                        ,-.            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+oY3V2ijCOnn/RHQRAtnkAKC3pOkfV1O7L14Z5BGxWjVU1fLhNACgpmng
bxbEO/lcMhOrg+ZZeK0x0H4=
=RemC
-----END PGP SIGNATURE-----


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