pike.git / src / threads.c

version» Context lines:

pike.git/src/threads.c:1:   #include "global.h" - RCSID("$Id: threads.c,v 1.166 2003/03/05 16:18:24 mast Exp $"); + RCSID("$Id: threads.c,v 1.167 2003/03/31 18:43:05 grubba Exp $");      PMOD_EXPORT int num_threads = 1;   PMOD_EXPORT int threads_disabled = 0;      #ifdef _REENTRANT   #include "threads.h"   #include "array.h"   #include "mapping.h"   #include "object.h"   #include "pike_macros.h"
pike.git/src/threads.c:642:       SWAP_IN_THREAD(OBJ2THREAD(arg.id)); /* Init struct */    init_interpreter();    Pike_interpreter.thread_id=arg.id;   #ifdef PROFILING    Pike_interpreter.stack_bottom=((char *)&data);   #endif    Pike_interpreter.stack_top=((char *)&data)+ (thread_stack_size-16384) * STACK_DIRECTION;    Pike_interpreter.recoveries = NULL;    SWAP_OUT_THREAD(OBJ2THREAD(Pike_interpreter.thread_id)); /* Init struct */ +  Pike_interpreter.thread_id=arg.id;    OBJ2THREAD(Pike_interpreter.thread_id)->swapped=0;      #if defined(PIKE_DEBUG)    if(d_flag)    {    THREAD_T self = th_self();       if( Pike_interpreter.thread_id && !th_equal( OBJ2THREAD(Pike_interpreter.thread_id)->id, self) )    fatal("Current thread is wrong. %lx %lx\n",    (long)OBJ2THREAD(Pike_interpreter.thread_id)->id, (long)self);
pike.git/src/threads.c:1562:    OPT_EXTERNAL_DEPEND);       /* Some constants... */    add_integer_constant("THREAD_NOT_STARTED", THREAD_NOT_STARTED, 0);    add_integer_constant("THREAD_RUNNING", THREAD_RUNNING, 0);    add_integer_constant("THREAD_EXITED", THREAD_EXITED, 0);       if(!mutex_key)    fatal("Failed to initialize thread program!\n");    -  Pike_interpreter.thread_id=clone_object(thread_id_prog,0); +  { +  struct object *o = Pike_interpreter.thread_id = +  clone_object(thread_id_prog,0);    SWAP_OUT_THREAD(OBJ2THREAD(Pike_interpreter.thread_id)); /* Init struct */ -  +  Pike_interpreter.thread_id = o; +  }    OBJ2THREAD(Pike_interpreter.thread_id)->id=th_self();    OBJ2THREAD(Pike_interpreter.thread_id)->swapped=0;    thread_table_insert(Pike_interpreter.thread_id);   }      void th_cleanup(void)   {    th_running = 0;       if(Pike_interpreter.thread_id)