Branch: Tag:

2000-07-28

2000-07-28 17:16:56 by Fredrik Hübinette (Hubbe) <hubbe@hubbe.net>

JUMBOPATCH: dynamic loading now works on Win* !!!! (somewhat experimental :)

Rev: src/.cvsignore:1.24
Rev: src/Makefile.in:1.198
Rev: src/aclocal.m4:1.17
Rev: src/array.c:1.79
Rev: src/array.h:1.22
Rev: src/backend.c:1.53
Rev: src/backend.h:1.9
Rev: src/bignum.c:1.17
Rev: src/bignum.h:1.14
Rev: src/builtin_functions.c:1.293
Rev: src/builtin_functions.h:1.14
Rev: src/callback.c:1.20
Rev: src/configure.in:1.387
Rev: src/constants.c:1.22
Rev: src/dynamic_buffer.c:1.10
Rev: src/dynamic_load.c:1.41
Rev: src/error.c:1.56
Rev: src/error.h:1.46
Rev: src/fd_control.c:1.32
Rev: src/fdlib.c:1.37
Rev: src/fdlib.h:1.34
Rev: src/fsort.c:1.13
Rev: src/fsort_template.h:1.7
Rev: src/gc.c:1.110
Rev: src/gc.h:1.57
Rev: src/global.h:1.44
Rev: src/interpret.c:1.158
Rev: src/interpret.h:1.52
Rev: src/main.c:1.94
Rev: src/mapping.c:1.94
Rev: src/mapping.h:1.28
Rev: src/module_magic.h:1.1
Rev: src/module_support.c:1.34
Rev: src/module_support.h:1.7
Rev: src/multiset.c:1.26
Rev: src/object.c:1.137
Rev: src/object.h:1.50
Rev: src/opcodes.c:1.78
Rev: src/operators.c:1.93
Rev: src/operators.h:1.8
Rev: src/pike_macros.h:1.17
Rev: src/pike_memory.c:1.71
Rev: src/pike_memory.h:1.14
Rev: src/pike_types.c:1.132
Rev: src/port.c:1.28
Rev: src/precompile.sh.in:1.2
Rev: src/program.c:1.252
Rev: src/program.h:1.97
Rev: src/signal_handler.c:1.173
Rev: src/stralloc.c:1.85
Rev: src/stralloc.h:1.42
Rev: src/stuff.c:1.11
Rev: src/svalue.c:1.85
Rev: src/svalue.h:1.62
Rev: src/testsuite.in:1.316
Rev: src/threads.c:1.133
Rev: src/threads.h:1.99

1:   #include "global.h" - RCSID("$Id: threads.c,v 1.132 2000/07/07 01:24:14 hubbe Exp $"); + RCSID("$Id: threads.c,v 1.133 2000/07/28 17:16:55 hubbe Exp $");    - int num_threads = 1; - int threads_disabled = 0; + PMOD_EXPORT int num_threads = 1; + PMOD_EXPORT int threads_disabled = 0;      #ifdef _REENTRANT   #include "threads.h"
23:      #include <errno.h>    - int live_threads = 0; - COND_T live_threads_change; - COND_T threads_disabled_change; - size_t thread_stack_size=1024 * 1204; + PMOD_EXPORT int live_threads = 0; + PMOD_EXPORT COND_T live_threads_change; + PMOD_EXPORT COND_T threads_disabled_change; + PMOD_EXPORT size_t thread_stack_size=1024 * 1204;      #ifndef HAVE_PTHREAD_ATFORK   #include "callback.h"
103: Inside #if defined(__NT__) and #if defined(PIKE_DEBUG)
   return 1;   }    - HANDLE CheckValidHandle(HANDLE h) + PMOD_EXPORT HANDLE CheckValidHandle(HANDLE h)   {    if(!IsValidHandle(h))    fatal("Invalid handle!\n");
115:   #endif      #ifdef SIMULATE_COND_WITH_EVENT - int co_wait(COND_T *c, MUTEX_T *m) + PMOD_EXPORT int co_wait(COND_T *c, MUTEX_T *m)   {    struct cond_t_queue me;    event_init(&me.event);
146: Inside #if defined(SIMULATE_COND_WITH_EVENT)
   return 0;   }    - int co_signal(COND_T *c) + PMOD_EXPORT int co_signal(COND_T *c)   {    struct cond_t_queue *t;    mt_lock(& c->lock);
162: Inside #if defined(SIMULATE_COND_WITH_EVENT)
   return 0;   }    - int co_broadcast(COND_T *c) + PMOD_EXPORT int co_broadcast(COND_T *c)   {    struct cond_t_queue *t,*n;    mt_lock(& c->lock);
180: Inside #if defined(SIMULATE_COND_WITH_EVENT)
   return 0;   }    - int co_destroy(COND_T *c) + PMOD_EXPORT int co_destroy(COND_T *c)   {    struct cond_t_queue *t;    mt_lock(& c->lock);
204: Inside #if defined(PIKE_DEBUG)
  int debug_interpreter_is_locked = 0;   THREAD_T debug_locking_thread;   #endif - MUTEX_T interpreter_lock, thread_table_lock, interleave_lock; + PMOD_EXPORT MUTEX_T interpreter_lock; + MUTEX_T thread_table_lock, interleave_lock;   struct program *mutex_key = 0;   struct program *thread_id_prog = 0;   struct program *thread_local_prog = 0;
212: Inside #if defined(POSIX_THREADS)
  pthread_attr_t pattr;   pthread_attr_t small_pattr;   #endif - int thread_storage_offset; + PMOD_EXPORT int thread_storage_offset;      struct thread_starter   {
449:    mt_unlock( & thread_table_lock );   }    - struct thread_state *thread_state_for_id(THREAD_T tid) + PMOD_EXPORT struct thread_state *thread_state_for_id(THREAD_T tid)   {    unsigned INT32 h = thread_table_hash(&tid);    struct thread_state *s = NULL;
500:    as you have the interpreter lock, unless tid == th_self() */   }    - struct object *thread_for_id(THREAD_T tid) + PMOD_EXPORT struct object *thread_for_id(THREAD_T tid)   {    struct thread_state *s = thread_state_for_id(tid);    return (s == NULL? NULL : THREADSTATE2OBJ(s));
509:   }       - void f_all_threads(INT32 args) + PMOD_EXPORT void f_all_threads(INT32 args)   {    /* Return an unordered array containing all threads that was running    at the time this function was invoked */
531:   }       - int count_pike_threads(void) + PMOD_EXPORT int count_pike_threads(void)   {    return num_pike_threads;   }
1479:    return me;   }    - void th_farm(void (*fun)(void *), void *here) + PMOD_EXPORT void th_farm(void (*fun)(void *), void *here)   {    if(!fun) fatal("The farmers don't known how to handle empty fields\n");    mt_lock( &rosie );