Branch: Tag:

1998-11-22

1998-11-22 11:08:52 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

New module: Perl

Rev: src/ChangeLog:1.157
Rev: src/README:1.8
Rev: src/acconfig.h:1.35
Rev: src/array.c:1.42
Rev: src/array.h:1.14
Rev: src/backend.c:1.40
Rev: src/builtin_functions.c:1.140
Rev: src/callback.c:1.15
Rev: src/compilation.h:1.13
Rev: src/configure.in:1.254
Rev: src/cpp.c:1.30
Rev: src/docode.c:1.42
Rev: src/dynamic_buffer.c:1.9
Rev: src/encode.c:1.26
Rev: src/error.c:1.22
Rev: src/error.h:1.25
Rev: src/fd_control.c:1.22
Rev: src/fdlib.h:1.21
Rev: src/gc.c:1.39
Rev: src/gc.h:1.20
Rev: src/global.h:1.26
Rev: src/hashtable.c:1.5
Rev: src/interpret.c:1.111
Rev: src/interpret.h:1.24
Rev: src/language.yacc:1.108
Rev: src/las.c:1.71
Rev: src/las.h:1.17
Rev: src/lex.c:1.58
Rev: src/lex.h:1.12
Rev: src/main.c:1.60
Rev: src/mapping.c:1.37
Rev: src/modules/Odbc/odbc.c:1.12
Rev: src/modules/Perl/.cvsignore:1.1
Rev: src/modules/Perl/Makefile.in:1.1
Rev: src/modules/Perl/configure.in:1.1
Rev: src/modules/Perl/perlmod.c:1.1
Rev: src/modules/Perl/testsuite.in:1.1
Rev: src/modules/Postgres/postgres.c:1.10
Rev: src/modules/Regexp/pike_regexp.c:1.13
Rev: src/modules/call_out/call_out.c:1.23
Rev: src/modules/files/file.c:1.128
Rev: src/modules/files/socket.c:1.40
Rev: src/modules/spider/spider.c:1.76
Rev: src/modules/sprintf/sprintf.c:1.31
Rev: src/multiset.c:1.12
Rev: src/object.c:1.53
Rev: src/opcodes.c:1.32
Rev: src/operators.c:1.44
Rev: src/peep.c:1.25
Rev: src/pike_memory.c:1.28
Rev: src/pike_types.c:1.49
Rev: src/pike_types.h:1.16
Rev: src/port.c:1.18
Rev: src/port.h:1.20
Rev: src/program.c:1.105
Rev: src/program.h:1.46
Rev: src/signal_handler.c:1.89
Rev: src/stralloc.c:1.50
Rev: src/stralloc.h:1.26
Rev: src/svalue.c:1.39
Rev: src/svalue.h:1.19
Rev: src/threads.c:1.85
Rev: src/threads.h:1.60

1:   #include "global.h" - RCSID("$Id: threads.c,v 1.84 1998/09/05 19:40:50 grubba Exp $"); + RCSID("$Id: threads.c,v 1.85 1998/11/22 11:03:22 hubbe Exp $");      int num_threads = 1;   int threads_disabled = 0;
24: Inside #if defined(__NT__)
     #ifdef __NT__    - #ifdef DEBUG + #ifdef PIKE_DEBUG   static int IsValidHandle(HANDLE h)   {    __try {
82: Inside #if defined(SIMULATE_COND_WITH_EVENT)
   event_destroy(& me.event);    /* Cancellation point?? */    - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(me.next)    fatal("Wait on event return prematurely!!\n");   #endif
258:    THREADS_FPRINTF(0, (stderr, "_exit_threads_disable(): Wake up!\n"));    co_broadcast(&threads_disabled_change);    } - #ifdef DEBUG + #ifdef PIKE_DEBUG    } else {    fatal("exit_threads_disable() called too many times!\n"); - #endif /* DEBUG */ + #endif /* PIKE_DEBUG */    }   }   
334:   {    struct thread_state *s = (struct thread_state *)o->storage;    unsigned INT32 h = thread_table_hash(&s->id); - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(h>=THREAD_TABLE_SIZE)    fatal("thread_table_hash failed miserably!\n");   #endif
360:   {    unsigned INT32 h = thread_table_hash(&tid);    struct thread_state *s = NULL; - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(h>=THREAD_TABLE_SIZE)    fatal("thread_table_hash failed miserably!\n");   #endif
729:    {    struct mutex_storage *mut = THIS_KEY->mut;    - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(mut->key != o)    fatal("Mutex unlock from wrong key %p != %p!\n",THIS_KEY->mut->key,o);   #endif
869:    struct thread_state *tmp=(struct thread_state *)(o->storage);    if(tmp->thread_local != NULL)    gc_mark_mapping_as_referenced(tmp->thread_local); - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(tmp->swapped)    {    debug_gc_xmark_svalues(tmp->evaluator_stack,tmp->sp-tmp->evaluator_stack-1,"idle thread stack");
1008:    set_exit_callback(exit_mutex_key_obj);    mutex_key=end_program();    mutex_key->flags|=PROGRAM_DESTRUCT_IMMEDIATE; - #ifdef DEBUG + #ifdef PIKE_DEBUG    if(!mutex_key)    fatal("Failed to initialize mutex_key program!\n");   #endif