summaryrefslogtreecommitdiff
path: root/Python/thread_pthread.h
diff options
context:
space:
mode:
authorAntoine Pitrou <solipsis@pitrou.net>2012-08-04 00:56:19 +0200
committerAntoine Pitrou <solipsis@pitrou.net>2012-08-04 00:56:19 +0200
commitb0f1dbb51e0c28a801c8c3e9992453de14c5e436 (patch)
treedad2470e591823bf79bc9ea8a5a7923b928e9f4a /Python/thread_pthread.h
parent8cc05cc705495cfb6bf6a35600ba9a4a4c9e2b2c (diff)
parent6a18048c636a6fcc31c56906952f1e470cb5412b (diff)
downloadcpython-b0f1dbb51e0c28a801c8c3e9992453de14c5e436.tar.gz
Make TextIOWrapper's documentation clearer by copying the newline argument's description from open().
Diffstat (limited to 'Python/thread_pthread.h')
-rw-r--r--Python/thread_pthread.h25
1 files changed, 11 insertions, 14 deletions
diff --git a/Python/thread_pthread.h b/Python/thread_pthread.h
index 3cde03567c..5007aaf0b7 100644
--- a/Python/thread_pthread.h
+++ b/Python/thread_pthread.h
@@ -148,7 +148,7 @@ typedef struct {
* Initialization.
*/
-#ifdef _HAVE_BSDI
+#if defined(_HAVE_BSDI)
static
void _noop(void)
{
@@ -244,8 +244,7 @@ PyThread_start_new_thread(void (*func)(void *), void *arg)
hosed" because:
- It does not guarantee the promise that a non-zero integer is returned.
- The cast to long is inherently unsafe.
- - It is not clear that the 'volatile' (for AIX?) and ugly casting in the
- latter return statement (for Alpha OSF/1) are any longer necessary.
+ - It is not clear that the 'volatile' (for AIX?) are any longer necessary.
*/
long
PyThread_get_thread_ident(void)
@@ -253,13 +252,8 @@ PyThread_get_thread_ident(void)
volatile pthread_t threadid;
if (!initialized)
PyThread_init_thread();
- /* Jump through some hoops for Alpha OSF/1 */
threadid = pthread_self();
-#if SIZEOF_PTHREAD_T <= SIZEOF_LONG
return (long) threadid;
-#else
- return (long) *(long *) &threadid;
-#endif
}
void
@@ -449,12 +443,15 @@ PyThread_free_lock(PyThread_type_lock lock)
dprintf(("PyThread_free_lock(%p) called\n", lock));
- status = pthread_mutex_destroy( &thelock->mut );
- CHECK_STATUS("pthread_mutex_destroy");
-
+ /* some pthread-like implementations tie the mutex to the cond
+ * and must have the cond destroyed first.
+ */
status = pthread_cond_destroy( &thelock->lock_released );
CHECK_STATUS("pthread_cond_destroy");
+ status = pthread_mutex_destroy( &thelock->mut );
+ CHECK_STATUS("pthread_mutex_destroy");
+
free((void *)thelock);
}
@@ -537,12 +534,12 @@ PyThread_release_lock(PyThread_type_lock lock)
thelock->locked = 0;
- status = pthread_mutex_unlock( &thelock->mut );
- CHECK_STATUS("pthread_mutex_unlock[3]");
-
/* wake up someone (anyone, if any) waiting on the lock */
status = pthread_cond_signal( &thelock->lock_released );
CHECK_STATUS("pthread_cond_signal");
+
+ status = pthread_mutex_unlock( &thelock->mut );
+ CHECK_STATUS("pthread_mutex_unlock[3]");
}
#endif /* USE_SEMAPHORES */