Branch: Tag:

2008-11-18

2008-11-18 19:06:23 by Martin Stjernholm <mast@lysator.liu.se>

Fixed problems with uneven distribution of evaluator callback calls in the
interpreter loop: Changed to a single shared counter for
fast_check_threads_etc(), use the same fast_check_threads_etc interval for
all types of apply calls, and for all types of backward branch calls.

Rev: src/apply_low.h:1.35
Rev: src/interpret.c:1.409
Rev: src/interpret.h:1.176
Rev: src/interpret_functions.h:1.210

2:   || This file is part of Pike. For copyright information see COPYRIGHT.   || Pike is distributed under GPL, LGPL and MPL. See the file COPYING   || for more information. - || $Id: interpret.c,v 1.408 2008/08/18 15:16:47 mast Exp $ + || $Id: interpret.c,v 1.409 2008/11/18 19:06:23 mast Exp $   */      #include "global.h"
103:   #endif       + int fast_check_threads_counter = 0; +    /* Pike_sp points to first unused value on stack    * (much simpler than letting it point at the last used value.)    */
1133: Inside #if defined(OPCODE_INLINE_BRANCH) || defined(INS_F_JUMP) || \
   * to ensure thread switching. */   void branch_check_threads_etc()   { -  fast_check_threads_etc (6); +  FAST_CHECK_THREADS_ON_BRANCH();   }   #endif   
1841:    my_strcat (s->u.efun->name->str);    do_trace_call(args, &save_buf);    } -  check_threads_etc(); +  FAST_CHECK_THREADS_ON_CALL();    (*(s->u.efun->function))(args);      #ifdef PIKE_DEBUG