replace all remaining internal uses of pthread_self with __pthread_self
authorRich Felker <dalias@aerifal.cx>
Tue, 10 Jun 2014 08:02:40 +0000 (04:02 -0400)
committerRich Felker <dalias@aerifal.cx>
Tue, 10 Jun 2014 08:02:40 +0000 (04:02 -0400)
prior to version 1.1.0, the difference between pthread_self (the
public function) and __pthread_self (the internal macro or inline
function) was that the former would lazily initialize the thread
pointer if it was not already initialized, whereas the latter would
crash in this case. since lazy initialization is no longer supported,
use of pthread_self no longer makes sense; it simply generates larger,
slower code.

src/locale/uselocale.c
src/stdio/ftrylockfile.c
src/thread/cancel_impl.c
src/thread/pthread_cond_broadcast.c
src/thread/pthread_cond_timedwait.c
src/thread/pthread_create.c
src/thread/pthread_mutex_consistent.c
src/thread/pthread_mutex_timedlock.c
src/thread/pthread_mutex_trylock.c
src/thread/pthread_mutex_unlock.c
src/thread/pthread_setcanceltype.c

index 224ef38727310d65104e29bccc02e5a31df16ef9..4fc5c64ed118245fdb910d9560524dae1defee00 100644 (file)
@@ -4,7 +4,7 @@
 
 locale_t uselocale(locale_t l)
 {
-       pthread_t self = pthread_self();
+       pthread_t self = __pthread_self();
        locale_t old = self->locale;
        if (l) self->locale = l;
        return old;
index eef4e2502e56af1a6ed1f8d9a08f898bab5ce856..56cccafdc19fc3d7f60d8ae123aa479d3905d6e7 100644 (file)
@@ -4,7 +4,7 @@
 
 int ftrylockfile(FILE *f)
 {
-       int tid = pthread_self()->tid;
+       int tid = __pthread_self()->tid;
        if (f->lock == tid) {
                if (f->lockcount == LONG_MAX)
                        return -1;
index 525d2904089323de74f65f049d0d53e26c4ac6f9..41cf2b8ca34c7d19b39fbe94ac1307744e21d06c 100644 (file)
@@ -58,7 +58,7 @@ static void cancel_handler(int sig, siginfo_t *si, void *ctx)
 void __testcancel()
 {
        if (!libc.has_thread_pointer) return;
-       pthread_t self = pthread_self();
+       pthread_t self = __pthread_self();
        if (self->cancel && !self->canceldisable)
                __cancel();
 }
index 848e288f5ea6dc25de38b901210bbace6f2bc2de..0901daf663cd0078258767d1b55c95714cb22725 100644 (file)
@@ -28,7 +28,7 @@ int pthread_cond_broadcast(pthread_cond_t *c)
        /* Perform the futex requeue, waking one waiter unless we know
         * that the calling thread holds the mutex. */
        __syscall(SYS_futex, &c->_c_seq, FUTEX_REQUEUE,
-               !m->_m_type || (m->_m_lock&INT_MAX)!=pthread_self()->tid,
+               !m->_m_type || (m->_m_lock&INT_MAX)!=__pthread_self()->tid,
                INT_MAX, &m->_m_lock);
 
 out:
index 1f25c8e7b52ff2d8658d5021f2491a4dffbce0c6..99d62ccade7eee65a89bfa50bb7b6017f55fd505 100644 (file)
@@ -41,7 +41,7 @@ int pthread_cond_timedwait(pthread_cond_t *restrict c, pthread_mutex_t *restrict
        struct cm cm = { .c=c, .m=m };
        int r, e=0, seq;
 
-       if (m->_m_type && (m->_m_lock&INT_MAX) != pthread_self()->tid)
+       if (m->_m_type && (m->_m_lock&INT_MAX) != __pthread_self()->tid)
                return EPERM;
 
        if (ts && ts->tv_nsec >= 1000000000UL)
index e0b5ef16b384c43c789fbadbc989577922a5a1d7..7a2f172cc16857489d028ee00ca523b2a147e8b5 100644 (file)
@@ -13,7 +13,7 @@ weak_alias(dummy_0, __pthread_tsd_run_dtors);
 
 _Noreturn void pthread_exit(void *result)
 {
-       pthread_t self = pthread_self();
+       pthread_t self = __pthread_self();
        sigset_t set;
 
        self->result = result;
@@ -78,7 +78,7 @@ _Noreturn void pthread_exit(void *result)
 void __do_cleanup_push(struct __ptcb *cb)
 {
        if (!libc.has_thread_pointer) return;
-       struct pthread *self = pthread_self();
+       struct pthread *self = __pthread_self();
        cb->__next = self->cancelbuf;
        self->cancelbuf = cb;
 }
index 7dfb904f99a2da7ef67c3b611971dc609148927e..65da29fa88a25b4f652b1492f5206d7499ab85c3 100644 (file)
@@ -3,7 +3,7 @@
 int pthread_mutex_consistent(pthread_mutex_t *m)
 {
        if (m->_m_type < 8) return EINVAL;
-       if ((m->_m_lock & 0x3fffffff) != pthread_self()->tid)
+       if ((m->_m_lock & 0x3fffffff) != __pthread_self()->tid)
                return EPERM;
        m->_m_type -= 8;
        return 0;
index c24270d8f54ee6e36d30067b6ffee8b67a2a6652..7b1afc0262e3a7e0d8593f0e09fc994a13b0cc6e 100644 (file)
@@ -10,7 +10,7 @@ int pthread_mutex_timedlock(pthread_mutex_t *restrict m, const struct timespec *
        while ((r=pthread_mutex_trylock(m)) == EBUSY) {
                if (!(r=m->_m_lock) || (r&0x40000000)) continue;
                if ((m->_m_type&3) == PTHREAD_MUTEX_ERRORCHECK
-                && (r&0x1fffffff) == pthread_self()->tid)
+                && (r&0x1fffffff) == __pthread_self()->tid)
                        return EDEADLK;
 
                a_inc(&m->_m_waiters);
index db784a73a8b9bbc5d1ea400d8f440e7421765127..00ad65deb6b99cc8b81829265a8ab14dca2c18b7 100644 (file)
@@ -8,7 +8,7 @@ int pthread_mutex_trylock(pthread_mutex_t *m)
        if (m->_m_type == PTHREAD_MUTEX_NORMAL)
                return a_cas(&m->_m_lock, 0, EBUSY) & EBUSY;
 
-       self = pthread_self();
+       self = __pthread_self();
        tid = self->tid;
 
        if (m->_m_type >= 4) {
index 5fc0f4e56be4d2c321cbd0b04afc40c05c25859a..b4bd74b83d61d7bf48ccb6e7f2e64f1b0b5471b9 100644 (file)
@@ -13,7 +13,7 @@ int pthread_mutex_unlock(pthread_mutex_t *m)
        if (m->_m_type != PTHREAD_MUTEX_NORMAL) {
                if (!m->_m_lock)
                        return EPERM;
-               self = pthread_self();
+               self = __pthread_self();
                if ((m->_m_lock&0x1fffffff) != self->tid)
                        return EPERM;
                if ((m->_m_type&3) == PTHREAD_MUTEX_RECURSIVE && m->_m_count)
index ce2fff073569085862ae5825a01dc480e16a7659..bf0a3f383dd34943c6eb502f50043b4dddcff537 100644 (file)
@@ -2,7 +2,7 @@
 
 int pthread_setcanceltype(int new, int *old)
 {
-       struct pthread *self = pthread_self();
+       struct pthread *self = __pthread_self();
        if (new > 1U) return EINVAL;
        if (old) *old = self->cancelasync;
        self->cancelasync = new;