Robert Collins f1f1379560 2002-09-17 Robert Collins <rbtcollins@hotmail.com>
This work inspires by Thomas Pfaff's pthread_fork patch (1).
        * fork.cc (fork_child): Remove MTinterface fixup call, it's
        adsorbed by pthread::atforkchild.
        Rename __pthread_atforkchild to pthread::atforkchild to give
        access to private members.
        (fork_parent): Rename __pthread_atforkparent to
        pthread::atforkparent to give it access to private members.
        Ditto for __pthread_atforkprepare.
        * thread.cc: Fix some formatting problems throughout.
        (MTinterface::fixup_before_fork): Implement.
        (MTinterface::fixup_after_fork): Fix pthread_keys.
        (pthread_key::keys): Implement.
        (pthread_key::fixup_before_fork): Ditto.
        (pthread_key::fixup_after_fork): Ditto.
        (pthread_key::pthread_key): Add to pthread_key::keys.
        (pthread_key::~pthread_key): Remove from pthread_key::keys.
        (pthread_key::saveKeyToBuffer): Implement.
        (pthread_key::recreateKeyFromBuffer): Ditto.
        (pthread::atforkprepare): Prepare all MT classes for fork.
        (pthread::atforkchild): And fix them up afterwards.
        * thread.h (pthread_key): Buffer the key value during
        fork in fork_buf.
        List the keys needing to be fixed up in a linked list with
        head pthread_key::keys.
        (pthread): Move atfork cygwin internal calls into the class.
        (MTInterface): Provide a fixup_before_fork for objecst that
        need to save state.
        (__pthread_atforkprepare): Remove.
        (__pthread_atforkparent): Remove.
        (__pthread_atforkchild): Remove.
2002-09-17 09:12:36 +00:00
..
2001-09-11 20:01:02 +00:00
2001-12-20 03:03:59 +00:00
2001-10-28 23:05:49 +00:00
2001-10-28 23:05:49 +00:00
2001-10-28 23:05:49 +00:00
2002-01-01 16:49:52 +00:00
2001-10-12 01:51:21 +00:00
2001-09-11 20:01:02 +00:00
2001-09-12 17:46:37 +00:00
2002-04-19 14:42:20 +00:00
2002-08-18 04:13:57 +00:00
2000-11-19 04:58:18 +00:00
2001-09-11 20:01:02 +00:00
2001-10-05 04:36:14 +00:00
2002-09-04 15:17:24 +00:00
2001-10-28 23:05:49 +00:00
.
2002-05-04 04:30:57 +00:00
2002-08-03 23:34:01 +00:00
2002-02-11 02:25:42 +00:00
2002-01-13 20:03:03 +00:00
2001-09-11 20:01:02 +00:00
2002-09-06 04:39:49 +00:00
2001-06-01 01:45:53 +00:00
2001-09-11 20:01:02 +00:00
2001-09-11 20:01:02 +00:00
2001-09-11 20:01:02 +00:00
2000-08-18 19:51:02 +00:00
2002-08-31 03:35:50 +00:00
2001-09-11 20:01:02 +00:00
2002-08-18 04:13:57 +00:00
2002-04-04 05:28:49 +00:00
2002-03-05 18:03:32 +00:00
2002-09-06 04:30:46 +00:00