]> granicus.if.org Git - gc/commit
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 22:34:15 +0000 (01:34 +0300)
commitfec76d59af8e767071d6adedc4990f5ddc1c31c1
tree9eeff90fd7f4e33802a522d25e19555e743bfcc0
parent4f9c69a1c9425c1be8bce20ce1d7757e3953c0bb
Avoid multiple 'getcontext failed' warnings if getcontext is broken
(back-port of commits b5941322bfaff7 from 'master')

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