Mercurial > cpython-lru_cache-weakref
diff Python/ceval.c @ 926:c156d4960c2b legacy-trunk
* Makefile: cosmetics
* socketmodule.c: get rid of makepair(); fix makesocketaddr to fix
broken recvfrom()
* socketmodule: get rid of getStrarg()
* ceval.h: move eval_code() to new file eval.h, so compile.h is no
longer needed.
* ceval.c: move thread comments to ceval.h; always make save/restore
thread functions available (for dynloaded modules)
* cdmodule.c, listobject.c: don't include compile.h
* flmodule.c: include ceval.h
* import.c: include eval.h instead of ceval.h
* cgen.py: add forground(); noport(); winopen(""); to initgl().
* bltinmodule.c, socketmodule.c, fileobject.c, posixmodule.c,
selectmodule.c:
adapt to threads (add BGN/END SAVE macros)
* stdwinmodule.c: adapt to threads and use a special stdwin lock.
* pythonmain.c: don't include getpythonpath().
* pythonrun.c: use BGN/END SAVE instead of direct calls; also more
BGN/END SAVE calls etc.
* thread.c: bigger stack size for sun; change exit() to _exit()
* threadmodule.c: use BGN/END SAVE macros where possible
* timemodule.c: adapt better to threads; use BGN/END SAVE; add
longsleep internal function if BSD_TIME; cosmetics
| author | Guido van Rossum <guido@python.org> |
|---|---|
| date | Wed, 05 Aug 1992 19:58:53 +0000 |
| parents | 72aceed365d4 |
| children | 222f04f55083 |
line wrap: on
line diff
--- a/Python/ceval.c Wed Aug 05 19:00:45 1992 +0000 +++ b/Python/ceval.c Wed Aug 05 19:58:53 1992 +0000 @@ -30,6 +30,7 @@ #include "sysmodule.h" #include "compile.h" #include "frameobject.h" +#include "eval.h" #include "ceval.h" #include "opcode.h" #include "bltinmodule.h" @@ -83,47 +84,27 @@ static frameobject *current_frame; - -/* Interface for threads. - - A module that plans to do a blocking system call (or something else - that lasts a long time and doesn't touch Python data) can allow other - threads to run as follows: - - void *x; +#ifdef USE_THREAD - ...preparations here... - x = save_thread(); - ...blocking system call here... - restore_thread(x); - ...interpretr result here... - - For convenience, that the value of 'errno' is restored across the - the call to restore_thread(). - - The function init_save_thread() should be called only from - initthread() in "threadmodule.c". - - Note that not yet all candidates have been converted to use this - mechanism! -*/ - -#ifdef USE_THREAD #include <errno.h> #include "thread.h" + static type_lock interpreter_lock; void init_save_thread() { -#ifdef USE_THREAD if (interpreter_lock) fatal("2nd call to init_save_thread"); interpreter_lock = allocate_lock(); acquire_lock(interpreter_lock, 1); +} + #endif -} -#endif + +/* Functions save_thread and restore_thread are always defined so + dynamically loaded modules needn't be compiled separately for use + with and without threads: */ void * save_thread()
