From 75346d5209e0c3e982fb175e08ecb6da54c044a8 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sat, 24 Oct 2009 20:11:21 +0000 Subject: Remove AtheOS support, as per PEP 11 (which claims that all code was removed in Python 3.0). --- Python/thread.c | 4 ---- 1 file changed, 4 deletions(-) (limited to 'Python/thread.c') diff --git a/Python/thread.c b/Python/thread.c index 1d7bed972f..c440d43ee5 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -137,10 +137,6 @@ static size_t _pythread_stacksize = 0; #include "thread_plan9.h" #endif -#ifdef ATHEOS_THREADS -#include "thread_atheos.h" -#endif - /* #ifdef FOOBAR_THREADS #include "thread_foobar.h" -- cgit v1.2.1 From a074dd040afda08292d427b60d6835e477662231 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sat, 24 Oct 2009 20:24:16 +0000 Subject: Disable support for Mach C Threads. --- Python/thread.c | 1 + 1 file changed, 1 insertion(+) (limited to 'Python/thread.c') diff --git a/Python/thread.c b/Python/thread.c index c440d43ee5..5b8ec10b5c 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -122,6 +122,7 @@ static size_t _pythread_stacksize = 0; #endif #ifdef C_THREADS +#error Mach C Threads are now unsupported, and code will be removed in 3.3. #include "thread_cthread.h" #endif -- cgit v1.2.1 From 6f7971351b0484fca0ae17f74dd3eac6994902cd Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sat, 24 Oct 2009 20:30:34 +0000 Subject: Disable support for SunOS LWP --- Python/thread.c | 1 + 1 file changed, 1 insertion(+) (limited to 'Python/thread.c') diff --git a/Python/thread.c b/Python/thread.c index 5b8ec10b5c..acb2103884 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -109,6 +109,7 @@ static size_t _pythread_stacksize = 0; #endif #ifdef SUN_LWP +#error SunOS lightweight processes are now unsupported, and code will be removed in 3.3. #include "thread_lwp.h" #endif -- cgit v1.2.1 From df312333c2011f462ad06f998263706e46995dc7 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sat, 24 Oct 2009 20:35:52 +0000 Subject: Disable GNU pth support --- Python/thread.c | 1 + 1 file changed, 1 insertion(+) (limited to 'Python/thread.c') diff --git a/Python/thread.c b/Python/thread.c index acb2103884..f5722a7f13 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -114,6 +114,7 @@ static size_t _pythread_stacksize = 0; #endif #ifdef HAVE_PTH +#error GNU pth threads are now unsupported, and code will be removed in 3.3. #include "thread_pth.h" #undef _POSIX_THREADS #endif -- cgit v1.2.1 From 2489e2c722274e0424466615053d0da998766ac4 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sat, 24 Oct 2009 20:43:49 +0000 Subject: Disable support for Irix threads --- Python/thread.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) (limited to 'Python/thread.c') diff --git a/Python/thread.c b/Python/thread.c index f5722a7f13..a839481b4f 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -23,12 +23,6 @@ #include -#ifdef __sgi -#ifndef HAVE_PTHREAD_H /* XXX Need to check in configure.in */ -#undef _POSIX_THREADS -#endif -#endif - #include "pythread.h" #ifndef _POSIX_THREADS @@ -101,6 +95,7 @@ PyThread_init_thread(void) static size_t _pythread_stacksize = 0; #ifdef SGI_THREADS +#error SGI Irix threads are now unsupported, and code will be removed in 3.3. #include "thread_sgi.h" #endif -- cgit v1.2.1 From 567b94adaaceb622c33f9be1998735dfb95f1707 Mon Sep 17 00:00:00 2001 From: Antoine Pitrou Date: Sun, 9 May 2010 15:52:27 +0000 Subject: Recorded merge of revisions 81029 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r81029 | antoine.pitrou | 2010-05-09 16:46:46 +0200 (dim., 09 mai 2010) | 3 lines Untabify C files. Will watch buildbots. ........ --- Python/thread.c | 264 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 132 insertions(+), 132 deletions(-) (limited to 'Python/thread.c') diff --git a/Python/thread.c b/Python/thread.c index a839481b4f..09beaef795 100644 --- a/Python/thread.c +++ b/Python/thread.c @@ -40,7 +40,7 @@ #endif /* Check if we're running on HP-UX and _SC_THREADS is defined. If so, then - enough of the Posix threads package is implimented to support python + enough of the Posix threads package is implimented to support python threads. This is valid for HP-UX 11.23 running on an ia64 system. If needed, add @@ -58,8 +58,8 @@ #ifdef Py_DEBUG static int thread_debug = 0; -#define dprintf(args) (void)((thread_debug & 1) && printf args) -#define d2printf(args) ((thread_debug & 8) && printf args) +#define dprintf(args) (void)((thread_debug & 1) && printf args) +#define d2printf(args) ((thread_debug & 8) && printf args) #else #define dprintf(args) #define d2printf(args) @@ -73,20 +73,20 @@ void PyThread_init_thread(void) { #ifdef Py_DEBUG - char *p = Py_GETENV("PYTHONTHREADDEBUG"); - - if (p) { - if (*p) - thread_debug = atoi(p); - else - thread_debug = 1; - } + char *p = Py_GETENV("PYTHONTHREADDEBUG"); + + if (p) { + if (*p) + thread_debug = atoi(p); + else + thread_debug = 1; + } #endif /* Py_DEBUG */ - if (initialized) - return; - initialized = 1; - dprintf(("PyThread_init_thread called\n")); - PyThread__init_thread(); + if (initialized) + return; + initialized = 1; + dprintf(("PyThread_init_thread called\n")); + PyThread__init_thread(); } /* Support for runtime thread stack size tuning. @@ -145,21 +145,21 @@ static size_t _pythread_stacksize = 0; size_t PyThread_get_stacksize(void) { - return _pythread_stacksize; + return _pythread_stacksize; } /* Only platforms defining a THREAD_SET_STACKSIZE() macro in thread_.h support changing the stack size. Return 0 if stack size is valid, - -1 if stack size value is invalid, - -2 if setting stack size is not supported. */ + -1 if stack size value is invalid, + -2 if setting stack size is not supported. */ int PyThread_set_stacksize(size_t size) { #if defined(THREAD_SET_STACKSIZE) - return THREAD_SET_STACKSIZE(size); + return THREAD_SET_STACKSIZE(size); #else - return -2; + return -2; #endif } @@ -211,15 +211,15 @@ that calls to PyThread_create_key() are serialized externally. * to enforce exclusion internally. */ struct key { - /* Next record in the list, or NULL if this is the last record. */ - struct key *next; + /* Next record in the list, or NULL if this is the last record. */ + struct key *next; - /* The thread id, according to PyThread_get_thread_ident(). */ - long id; + /* The thread id, according to PyThread_get_thread_ident(). */ + long id; - /* The key and its associated value. */ - int key; - void *value; + /* The key and its associated value. */ + int key; + void *value; }; static struct key *keyhead = NULL; @@ -250,41 +250,41 @@ static int nkeys = 0; /* PyThread_create_key() hands out nkeys+1 next */ static struct key * find_key(int key, void *value) { - struct key *p, *prev_p; - long id = PyThread_get_thread_ident(); - - if (!keymutex) - return NULL; - PyThread_acquire_lock(keymutex, 1); - prev_p = NULL; - for (p = keyhead; p != NULL; p = p->next) { - if (p->id == id && p->key == key) - goto Done; - /* Sanity check. These states should never happen but if - * they do we must abort. Otherwise we'll end up spinning in - * in a tight loop with the lock held. A similar check is done - * in pystate.c tstate_delete_common(). */ - if (p == prev_p) - Py_FatalError("tls find_key: small circular list(!)"); - prev_p = p; - if (p->next == keyhead) - Py_FatalError("tls find_key: circular list(!)"); - } - if (value == NULL) { - assert(p == NULL); - goto Done; - } - p = (struct key *)malloc(sizeof(struct key)); - if (p != NULL) { - p->id = id; - p->key = key; - p->value = value; - p->next = keyhead; - keyhead = p; - } + struct key *p, *prev_p; + long id = PyThread_get_thread_ident(); + + if (!keymutex) + return NULL; + PyThread_acquire_lock(keymutex, 1); + prev_p = NULL; + for (p = keyhead; p != NULL; p = p->next) { + if (p->id == id && p->key == key) + goto Done; + /* Sanity check. These states should never happen but if + * they do we must abort. Otherwise we'll end up spinning in + * in a tight loop with the lock held. A similar check is done + * in pystate.c tstate_delete_common(). */ + if (p == prev_p) + Py_FatalError("tls find_key: small circular list(!)"); + prev_p = p; + if (p->next == keyhead) + Py_FatalError("tls find_key: circular list(!)"); + } + if (value == NULL) { + assert(p == NULL); + goto Done; + } + p = (struct key *)malloc(sizeof(struct key)); + if (p != NULL) { + p->id = id; + p->key = key; + p->value = value; + p->next = keyhead; + keyhead = p; + } Done: - PyThread_release_lock(keymutex); - return p; + PyThread_release_lock(keymutex); + return p; } /* Return a new key. This must be called before any other functions in @@ -294,32 +294,32 @@ find_key(int key, void *value) int PyThread_create_key(void) { - /* All parts of this function are wrong if it's called by multiple - * threads simultaneously. - */ - if (keymutex == NULL) - keymutex = PyThread_allocate_lock(); - return ++nkeys; + /* All parts of this function are wrong if it's called by multiple + * threads simultaneously. + */ + if (keymutex == NULL) + keymutex = PyThread_allocate_lock(); + return ++nkeys; } /* Forget the associations for key across *all* threads. */ void PyThread_delete_key(int key) { - struct key *p, **q; - - PyThread_acquire_lock(keymutex, 1); - q = &keyhead; - while ((p = *q) != NULL) { - if (p->key == key) { - *q = p->next; - free((void *)p); - /* NB This does *not* free p->value! */ - } - else - q = &p->next; - } - PyThread_release_lock(keymutex); + struct key *p, **q; + + PyThread_acquire_lock(keymutex, 1); + q = &keyhead; + while ((p = *q) != NULL) { + if (p->key == key) { + *q = p->next; + free((void *)p); + /* NB This does *not* free p->value! */ + } + else + q = &p->next; + } + PyThread_release_lock(keymutex); } /* Confusing: If the current thread has an association for key, @@ -331,14 +331,14 @@ PyThread_delete_key(int key) int PyThread_set_key_value(int key, void *value) { - struct key *p; - - assert(value != NULL); - p = find_key(key, value); - if (p == NULL) - return -1; - else - return 0; + struct key *p; + + assert(value != NULL); + p = find_key(key, value); + if (p == NULL) + return -1; + else + return 0; } /* Retrieve the value associated with key in the current thread, or NULL @@ -347,34 +347,34 @@ PyThread_set_key_value(int key, void *value) void * PyThread_get_key_value(int key) { - struct key *p = find_key(key, NULL); + struct key *p = find_key(key, NULL); - if (p == NULL) - return NULL; - else - return p->value; + if (p == NULL) + return NULL; + else + return p->value; } /* Forget the current thread's association for key, if any. */ void PyThread_delete_key_value(int key) { - long id = PyThread_get_thread_ident(); - struct key *p, **q; - - PyThread_acquire_lock(keymutex, 1); - q = &keyhead; - while ((p = *q) != NULL) { - if (p->key == key && p->id == id) { - *q = p->next; - free((void *)p); - /* NB This does *not* free p->value! */ - break; - } - else - q = &p->next; - } - PyThread_release_lock(keymutex); + long id = PyThread_get_thread_ident(); + struct key *p, **q; + + PyThread_acquire_lock(keymutex, 1); + q = &keyhead; + while ((p = *q) != NULL) { + if (p->key == key && p->id == id) { + *q = p->next; + free((void *)p); + /* NB This does *not* free p->value! */ + break; + } + else + q = &p->next; + } + PyThread_release_lock(keymutex); } /* Forget everything not associated with the current thread id. @@ -385,27 +385,27 @@ PyThread_delete_key_value(int key) void PyThread_ReInitTLS(void) { - long id = PyThread_get_thread_ident(); - struct key *p, **q; - - if (!keymutex) - return; - - /* As with interpreter_lock in PyEval_ReInitThreads() - we just create a new lock without freeing the old one */ - keymutex = PyThread_allocate_lock(); - - /* Delete all keys which do not match the current thread id */ - q = &keyhead; - while ((p = *q) != NULL) { - if (p->id != id) { - *q = p->next; - free((void *)p); - /* NB This does *not* free p->value! */ - } - else - q = &p->next; - } + long id = PyThread_get_thread_ident(); + struct key *p, **q; + + if (!keymutex) + return; + + /* As with interpreter_lock in PyEval_ReInitThreads() + we just create a new lock without freeing the old one */ + keymutex = PyThread_allocate_lock(); + + /* Delete all keys which do not match the current thread id */ + q = &keyhead; + while ((p = *q) != NULL) { + if (p->id != id) { + *q = p->next; + free((void *)p); + /* NB This does *not* free p->value! */ + } + else + q = &p->next; + } } #endif /* Py_HAVE_NATIVE_TLS */ -- cgit v1.2.1