Mercurial > cpython-lru_cache-weakref
diff Python/thread.c @ 38578:0b2b076e5908 legacy-trunk
Patch #1454481: Make thread stack size runtime tunable.
| author | Andrew MacIntyre <andymac@bullseye.apana.org.au> |
|---|---|
| date | Sun, 04 Jun 2006 12:31:09 +0000 |
| parents | b19cf73c54a7 |
| children | 19430cdff2bd |
line wrap: on
line diff
--- a/Python/thread.c Sun Jun 04 06:19:31 2006 +0000 +++ b/Python/thread.c Sun Jun 04 12:31:09 2006 +0000 @@ -94,6 +94,31 @@ PyThread__init_thread(); } +/* Support for runtime thread stack size tuning. + A value of 0 means using the platform's default stack size + or the size specified by the THREAD_STACK_SIZE macro. */ +static size_t _pythread_stacksize = 0; + +size_t +PyThread_get_stacksize(void) +{ + return _pythread_stacksize; +} + +static int +_pythread_unsupported_set_stacksize(size_t size) +{ + return PyErr_Warn(PyExc_RuntimeWarning, + "setting thread stack size not supported on " + "this platform"); +} + +/* Only platforms with THREAD_SET_STACKSIZE() defined in + pthread_<platform>.h, overriding this default definition, + will support changing the stack size. + Return 1 if an exception is pending, 0 otherwise. */ +#define THREAD_SET_STACKSIZE(x) _pythread_unsupported_set_stacksize(x) + #ifdef SGI_THREADS #include "thread_sgi.h" #endif @@ -149,6 +174,14 @@ #endif */ +/* use appropriate thread stack size setting routine. + Return 1 if an exception is pending, 0 otherwise. */ +int +PyThread_set_stacksize(size_t size) +{ + return THREAD_SET_STACKSIZE(size); +} + #ifndef Py_HAVE_NATIVE_TLS /* If the platform has not supplied a platform specific TLS implementation, provide our own.
