4
0
mirror of git://sourceware.org/git/newlib-cygwin.git synced 2025-02-14 13:09:34 +08:00
Corinna Vinschen a54bc198b1 Implement correct RLIMIT_STACK handling
* miscfuncs.cc (struct pthread_wrapper_arg): Add member guardsize.
        (pthread_wrapper): Set thread stack guarantee according to guardsize.
        Tweak assembler code so that $rax/$eax is not required by GCC to
        prepare the wrapper_arg value.
        (CygwinCreateThread): Fix deadzone handling.  Drop setting a "POSIX"
        guardpage (aka page w/ PAGE_NOACCESS).  Always use Windows guard
        pages instead.  On post-XP systems (providing SetThreadStackGuarantee)
        always set up stack Windows like with reserved/commited areas and
        movable guard pages.  Only on XP set up stack fully commited if the
        guardpage size is not the default system guardpage size.
        Fill out pthread_wrapper_arg::guardsize.  Improve comments.
        * resource.cc: Implement RSTACK_LIMIT Linux-like.
        (DEFAULT_STACKSIZE): New macro.
        (DEFAULT_STACKGUARD): Ditto.
        (rlimit_stack_guard): New muto.
        (rlimit_stack): New global variable holding current RSTACK_LIMIT values.
        (__set_rlimit_stack): Set rlimit_stack under lock.
        (__get_rlimit_stack): Initialize rlimit_stack from executable header
        and return rlimit_stack values under lock.
        (get_rlimit_stack): Filtering function to return useful default
        stacksize from rlimit_stack.rlim_cur value.
        (getrlimit): Call __get_rlimit_stack in RLIMIT_STACK case.
        (setrlimit): Call __set_rlimit_stack in RLIMIT_STACK case.
        * thread.cc (pthread::create): Fetch default stacksize calling
        get_rlimit_stack.
        (pthread_attr::pthread_attr): Fetch default guardsize calling
        wincap.def_guard_page_size.
        (pthread_attr_getstacksize): Fetch default stacksize calling
        get_rlimit_stack.
        * thread.h (PTHREAD_DEFAULT_STACKSIZE): Remove.
        (PTHREAD_DEFAULT_GUARDSIZE): Remove.
        (get_rlimit_stack): Declare.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2015-07-05 15:51:37 +02:00
..
2012-02-05 14:27:25 +00:00
2012-02-25 10:48:35 +00:00
2012-03-30 13:27:38 +00:00
2012-04-05 14:23:06 +00:00
2012-04-25 07:33:03 +00:00
2012-05-07 15:05:56 +00:00
2012-07-19 09:43:56 +00:00
2012-10-16 12:02:42 +00:00
.
2013-04-01 11:04:41 +00:00
2013-06-05 07:21:56 +00:00
2013-06-06 15:31:15 +00:00
2013-07-15 10:04:03 +00:00
2013-07-31 10:32:46 +00:00
2013-08-30 21:42:40 +00:00
2013-12-08 13:38:27 +00:00
2014-01-27 21:25:39 +00:00
2014-04-07 11:41:49 +00:00
2014-05-23 07:15:30 +00:00
2014-07-18 12:28:00 +00:00
2015-02-04 11:03:36 +00:00
2015-04-23 22:04:59 +02:00
2015-04-30 17:53:15 +02:00
2015-06-03 13:38:19 +02:00
2015-07-05 15:51:37 +02:00