Avoid multiple 'getcontext failed' warnings if getcontext is broken
authorIvan Maidanski <ivmai@mail.ru>
Thu, 26 Apr 2018 07:54:52 +0000 (10:54 +0300)
committerIvan Maidanski <ivmai@mail.ru>
Thu, 26 Apr 2018 07:54:52 +0000 (10:54 +0300)
commitb59413253fa0204d6897a05193c58c42ee0c029c
treee37457266e42ef8ff700171da80885bb33489d83
parentfcdd0bbabdf112e5bcd8882620877f868b9810ee
Avoid multiple 'getcontext failed' warnings if getcontext is broken

Issue #133 (bdwgc).

* mach_dep.c [!HAVE_PUSH_REGS && UNIX_LIKE && !NO_GETCONTEXT]
(GC_with_callee_saves_pushed): Define getcontext_works static variable;
do not call getcontext() if getcontext_works < 0; add comment; set
getcontext_works to 1 or -1 (depending whether getcontext is working)
if getcontext_works is zero.
* misc.c [THREADS && UNIX_LIKE && !NO_GETCONTEXT]
(callee_saves_pushed_dummy_fn): New static function (empty).
* misc.c [THREADS && UNIX_LIKE && !NO_GETCONTEXT] (GC_init): Call
GC_with_callee_saves_pushed(callee_saves_pushed_dummy_fn) if GC_dont_gc
or GC_dont_precollect (otherwise it is called by GC_gcollect_inner);
add comment.
mach_dep.c
misc.c