实例介绍
posix linux环境下的pthread source 通过查看源代码可以对线程的认识更加深刻 你知道吗?线程的底层实现也是调用clone[创建进程] 故有线程是轻量级的进程
【实例截图】
【核心代码】
1351029nptl
└── nptl
├── ANNOUNCE
├── Banner
├── ChangeLog
├── DESIGN-barrier.txt
├── DESIGN-condvar.txt
├── DESIGN-rwlock.txt
├── DESIGN-sem.txt
├── DESIGN-systemtap-probes.txt
├── Makeconfig
├── Makefile
├── TODO
├── TODO-kernel
├── TODO-testing
├── Versions
├── alloca_cutoff.c
├── allocatestack.c
├── cancellation.c
├── cleanup.c
├── cleanup_compat.c
├── cleanup_defer.c
├── cleanup_defer_compat.c
├── cleanup_routine.c
├── cond-perf.c
├── configure
├── descr.h
├── eintr.c
├── elision-conf.h
├── errno-loc.c
├── events.c
├── forward.c
├── herrno.c
├── libc-cancellation.c
├── libc-cleanup.c
├── lowlevellock.h
├── nptl-init.c
├── old_pthread_atfork.c
├── old_pthread_cond_broadcast.c
├── old_pthread_cond_destroy.c
├── old_pthread_cond_init.c
├── old_pthread_cond_signal.c
├── old_pthread_cond_timedwait.c
├── old_pthread_cond_wait.c
├── perf.c
├── pt-allocrtsig.c
├── pt-cleanup.c
├── pt-crti.S
├── pt-raise.c
├── pt-system.c
├── pthread-errnos.sym
├── pthread.IAB
├── pthread.IAD
├── pthread.IMB
├── pthread.IMD
├── pthread.PFI
├── pthread.PO
├── pthread.PR
├── pthread.PRI
├── pthread.PS
├── pthread.WK3
├── pthreadP.h
├── pthread_atfork.c
├── pthread_attr_destroy.c
├── pthread_attr_getdetachstate.c
├── pthread_attr_getguardsize.c
├── pthread_attr_getinheritsched.c
├── pthread_attr_getschedparam.c
├── pthread_attr_getschedpolicy.c
├── pthread_attr_getscope.c
├── pthread_attr_getstack.c
├── pthread_attr_getstackaddr.c
├── pthread_attr_getstacksize.c
├── pthread_attr_init.c
├── pthread_attr_setdetachstate.c
├── pthread_attr_setguardsize.c
├── pthread_attr_setinheritsched.c
├── pthread_attr_setschedparam.c
├── pthread_attr_setschedpolicy.c
├── pthread_attr_setscope.c
├── pthread_attr_setstack.c
├── pthread_attr_setstackaddr.c
├── pthread_attr_setstacksize.c
├── pthread_barrier_destroy.c
├── pthread_barrier_init.c
├── pthread_barrier_wait.c
├── pthread_barrierattr_destroy.c
├── pthread_barrierattr_getpshared.c
├── pthread_barrierattr_init.c
├── pthread_barrierattr_setpshared.c
├── pthread_cancel.c
├── pthread_clock_gettime.c
├── pthread_clock_settime.c
├── pthread_cond_broadcast.c
├── pthread_cond_destroy.c
├── pthread_cond_init.c
├── pthread_cond_signal.c
├── pthread_cond_timedwait.c
├── pthread_cond_wait.c
├── pthread_condattr_destroy.c
├── pthread_condattr_getclock.c
├── pthread_condattr_getpshared.c
├── pthread_condattr_init.c
├── pthread_condattr_setclock.c
├── pthread_condattr_setpshared.c
├── pthread_create.c
├── pthread_detach.c
├── pthread_equal.c
├── pthread_exit.c
├── pthread_getattr_default_np.c
├── pthread_getattr_np.c
├── pthread_getconcurrency.c
├── pthread_getcpuclockid.c
├── pthread_getschedparam.c
├── pthread_getspecific.c
├── pthread_join.c
├── pthread_key_create.c
├── pthread_key_delete.c
├── pthread_kill_other_threads.c
├── pthread_mutex_consistent.c
├── pthread_mutex_destroy.c
├── pthread_mutex_getprioceiling.c
├── pthread_mutex_init.c
├── pthread_mutex_lock.c
├── pthread_mutex_setprioceiling.c
├── pthread_mutex_timedlock.c
├── pthread_mutex_trylock.c
├── pthread_mutex_unlock.c
├── pthread_mutexattr_destroy.c
├── pthread_mutexattr_getprioceiling.c
├── pthread_mutexattr_getprotocol.c
├── pthread_mutexattr_getpshared.c
├── pthread_mutexattr_getrobust.c
├── pthread_mutexattr_gettype.c
├── pthread_mutexattr_init.c
├── pthread_mutexattr_setprioceiling.c
├── pthread_mutexattr_setprotocol.c
├── pthread_mutexattr_setpshared.c
├── pthread_mutexattr_setrobust.c
├── pthread_mutexattr_settype.c
├── pthread_once.c
├── pthread_rwlock_destroy.c
├── pthread_rwlock_init.c
├── pthread_rwlock_rdlock.c
├── pthread_rwlock_timedrdlock.c
├── pthread_rwlock_timedwrlock.c
├── pthread_rwlock_tryrdlock.c
├── pthread_rwlock_trywrlock.c
├── pthread_rwlock_unlock.c
├── pthread_rwlock_wrlock.c
├── pthread_rwlockattr_destroy.c
├── pthread_rwlockattr_getkind_np.c
├── pthread_rwlockattr_getpshared.c
├── pthread_rwlockattr_init.c
├── pthread_rwlockattr_setkind_np.c
├── pthread_rwlockattr_setpshared.c
├── pthread_self.c
├── pthread_setattr_default_np.c
├── pthread_setcancelstate.c
├── pthread_setcanceltype.c
├── pthread_setconcurrency.c
├── pthread_setegid.c
├── pthread_seteuid.c
├── pthread_setgid.c
├── pthread_setregid.c
├── pthread_setresgid.c
├── pthread_setresuid.c
├── pthread_setreuid.c
├── pthread_setschedparam.c
├── pthread_setschedprio.c
├── pthread_setspecific.c
├── pthread_setuid.c
├── pthread_spin_destroy.c
├── pthread_spin_init.c
├── pthread_spin_lock.c
├── pthread_spin_trylock.c
├── pthread_spin_unlock.c
├── pthread_testcancel.c
├── pthread_timedjoin.c
├── pthread_tryjoin.c
├── res.c
├── sem_close.c
├── sem_destroy.c
├── sem_getvalue.c
├── sem_init.c
├── sem_open.c
├── sem_unlink.c
├── semaphore.h
├── semaphoreP.h
├── shlib-versions
├── sigaction.c
├── sockperf.c
├── sysdeps
│ ├── i386
│ │ ├── Makefile
│ │ ├── i486
│ │ │ └── pthread_spin_trylock.S
│ │ ├── i586
│ │ │ └── pthread_spin_trylock.S
│ │ ├── i686
│ │ │ ├── Makefile
│ │ │ ├── pthread_spin_trylock.S
│ │ │ └── tls.h
│ │ ├── pthread_spin_init.c
│ │ ├── pthread_spin_lock.S
│ │ ├── pthread_spin_unlock.S
│ │ ├── pthreaddef.h
│ │ ├── tcb-offsets.sym
│ │ └── tls.h
│ ├── powerpc
│ │ ├── Makefile
│ │ ├── pthread_spin_lock.c
│ │ ├── pthread_spin_trylock.c
│ │ ├── pthreaddef.h
│ │ ├── tcb-offsets.sym
│ │ └── tls.h
│ ├── pthread
│ │ ├── Makefile
│ │ ├── Subdirs
│ │ ├── aio_misc.h
│ │ ├── allocalim.h
│ │ ├── bits
│ │ │ ├── libc-lock.h
│ │ │ ├── libc-lockP.h
│ │ │ ├── sigthread.h
│ │ │ └── stdio-lock.h
│ │ ├── configure
│ │ ├── configure.ac
│ │ ├── createthread.c
│ │ ├── flockfile.c
│ │ ├── ftrylockfile.c
│ │ ├── funlockfile.c
│ │ ├── gai_misc.h
│ │ ├── librt-cancellation.c
│ │ ├── list.h
│ │ ├── malloc-machine.h
│ │ ├── posix-timer.h
│ │ ├── pt-longjmp.c
│ │ ├── pthread-functions.h
│ │ ├── pthread.h
│ │ ├── pthread_sigmask.c
│ │ ├── setxid.h
│ │ ├── sigfillset.c
│ │ ├── sigprocmask.c
│ │ ├── tcb-offsets.h
│ │ ├── timer_create.c
│ │ ├── timer_delete.c
│ │ ├── timer_getoverr.c
│ │ ├── timer_gettime.c
│ │ ├── timer_routines.c
│ │ ├── timer_settime.c
│ │ ├── tst-mqueue8x.c
│ │ ├── tst-timer.c
│ │ └── unwind-forcedunwind.c
│ ├── s390
│ │ ├── Makefile
│ │ ├── pthread_spin_init.c
│ │ ├── pthread_spin_lock.c
│ │ ├── pthread_spin_trylock.c
│ │ ├── pthread_spin_unlock.c
│ │ ├── pthreaddef.h
│ │ ├── tcb-offsets.sym
│ │ └── tls.h
│ ├── sh
│ │ ├── Makefile
│ │ ├── pthread_spin_init.c
│ │ ├── pthread_spin_lock.c
│ │ ├── pthread_spin_trylock.S
│ │ ├── pthread_spin_unlock.S
│ │ ├── pthreaddef.h
│ │ ├── tcb-offsets.sym
│ │ └── tls.h
│ ├── sparc
│ │ ├── Makefile
│ │ ├── sparc32
│ │ │ ├── pthread_spin_lock.S
│ │ │ ├── pthread_spin_trylock.S
│ │ │ ├── pthreaddef.h
│ │ │ └── sparcv9
│ │ │ ├── pthread_spin_init.c
│ │ │ ├── pthread_spin_lock.S
│ │ │ ├── pthread_spin_trylock.S
│ │ │ └── pthread_spin_unlock.S
│ │ ├── sparc64
│ │ │ ├── pthread_spin_init.c
│ │ │ ├── pthread_spin_lock.S
│ │ │ ├── pthread_spin_trylock.S
│ │ │ ├── pthread_spin_unlock.S
│ │ │ └── pthreaddef.h
│ │ ├── tcb-offsets.sym
│ │ └── tls.h
│ ├── unix
│ │ └── sysv
│ │ └── linux
│ │ ├── Implies
│ │ ├── Makefile
│ │ ├── Versions
│ │ ├── aio_misc.h
│ │ ├── allocrtsig.c
│ │ ├── bits
│ │ │ ├── local_lim.h
│ │ │ └── posix_opt.h
│ │ ├── createthread.c
│ │ ├── fork.c
│ │ ├── fork.h
│ │ ├── getpid.c
│ │ ├── i386
│ │ │ ├── Implies
│ │ │ ├── clone.S
│ │ │ ├── createthread.c
│ │ │ ├── dl-sysdep.h
│ │ │ ├── fork.c
│ │ │ ├── i486
│ │ │ │ ├── libc-lowlevellock.S
│ │ │ │ ├── lowlevellock.S
│ │ │ │ ├── lowlevelrobustlock.S
│ │ │ │ ├── pthread_barrier_wait.S
│ │ │ │ ├── pthread_cond_broadcast.S
│ │ │ │ ├── pthread_cond_signal.S
│ │ │ │ ├── pthread_cond_timedwait.S
│ │ │ │ ├── pthread_cond_wait.S
│ │ │ │ ├── pthread_rwlock_rdlock.S
│ │ │ │ ├── pthread_rwlock_timedrdlock.S
│ │ │ │ ├── pthread_rwlock_timedwrlock.S
│ │ │ │ ├── pthread_rwlock_unlock.S
│ │ │ │ ├── pthread_rwlock_wrlock.S
│ │ │ │ ├── sem_post.S
│ │ │ │ ├── sem_timedwait.S
│ │ │ │ ├── sem_trywait.S
│ │ │ │ └── sem_wait.S
│ │ │ ├── i586
│ │ │ │ ├── libc-lowlevellock.S
│ │ │ │ ├── lowlevellock.S
│ │ │ │ ├── lowlevelrobustlock.S
│ │ │ │ ├── pthread_barrier_wait.S
│ │ │ │ ├── pthread_cond_broadcast.S
│ │ │ │ ├── pthread_cond_signal.S
│ │ │ │ ├── pthread_cond_timedwait.S
│ │ │ │ ├── pthread_cond_wait.S
│ │ │ │ ├── pthread_rwlock_rdlock.S
│ │ │ │ ├── pthread_rwlock_timedrdlock.S
│ │ │ │ ├── pthread_rwlock_timedwrlock.S
│ │ │ │ ├── pthread_rwlock_unlock.S
│ │ │ │ ├── pthread_rwlock_wrlock.S
│ │ │ │ ├── sem_post.S
│ │ │ │ ├── sem_timedwait.S
│ │ │ │ ├── sem_trywait.S
│ │ │ │ └── sem_wait.S
│ │ │ ├── i686
│ │ │ │ ├── dl-sysdep.h
│ │ │ │ ├── libc-lowlevellock.S
│ │ │ │ ├── lowlevellock.S
│ │ │ │ ├── lowlevelrobustlock.S
│ │ │ │ ├── pthread_barrier_wait.S
│ │ │ │ ├── pthread_cond_broadcast.S
│ │ │ │ ├── pthread_cond_signal.S
│ │ │ │ ├── pthread_cond_timedwait.S
│ │ │ │ ├── pthread_cond_wait.S
│ │ │ │ ├── pthread_rwlock_rdlock.S
│ │ │ │ ├── pthread_rwlock_timedrdlock.S
│ │ │ │ ├── pthread_rwlock_timedwrlock.S
│ │ │ │ ├── pthread_rwlock_unlock.S
│ │ │ │ ├── pthread_rwlock_wrlock.S
│ │ │ │ ├── sem_post.S
│ │ │ │ ├── sem_timedwait.S
│ │ │ │ ├── sem_trywait.S
│ │ │ │ └── sem_wait.S
│ │ │ ├── i786
│ │ │ │ └── Implies
│ │ │ ├── lowlevellock.h
│ │ │ ├── not-cancel.h
│ │ │ ├── pt-vfork.S
│ │ │ ├── pthread_once.S
│ │ │ ├── pthread_spin_init.c
│ │ │ ├── pthread_spin_unlock.S
│ │ │ ├── smp.h
│ │ │ ├── sysdep-cancel.h
│ │ │ └── vfork.S
│ │ ├── internaltypes.h
│ │ ├── jmp-unwind.c
│ │ ├── kernel-posix-timers.h
│ │ ├── libc-lowlevellock.c
│ │ ├── libc_multiple_threads.c
│ │ ├── libc_pthread_init.c
│ │ ├── lowlevelbarrier.sym
│ │ ├── lowlevelcond.sym
│ │ ├── lowlevellock.c
│ │ ├── lowlevelrobustlock.c
│ │ ├── lowlevelrobustlock.sym
│ │ ├── lowlevelrwlock.sym
│ │ ├── mq_notify.c
│ │ ├── powerpc
│ │ │ ├── Makefile
│ │ │ ├── Versions
│ │ │ ├── bits
│ │ │ │ ├── local_lim.h
│ │ │ │ ├── pthreadtypes.h
│ │ │ │ └── semaphore.h
│ │ │ ├── createthread.c
│ │ │ ├── fork.c
│ │ │ ├── lowlevellock.h
│ │ │ ├── not-cancel.h
│ │ │ ├── powerpc32
│ │ │ │ ├── clone.S
│ │ │ │ ├── pt-vfork.S
│ │ │ │ ├── sysdep-cancel.h
│ │ │ │ └── vfork.S
│ │ │ ├── powerpc64
│ │ │ │ ├── Versions
│ │ │ │ ├── clone.S
│ │ │ │ ├── pt-vfork.S
│ │ │ │ ├── sysdep-cancel.h
│ │ │ │ ├── timer_create.c
│ │ │ │ ├── timer_delete.c
│ │ │ │ ├── timer_getoverr.c
│ │ │ │ ├── timer_gettime.c
│ │ │ │ ├── timer_settime.c
│ │ │ │ └── vfork.S
│ │ │ ├── pt-longjmp.c
│ │ │ ├── pthread_attr_setstack.c
│ │ │ ├── pthread_attr_setstacksize.c
│ │ │ ├── pthread_once.c
│ │ │ ├── pthread_spin_unlock.c
│ │ │ └── sem_post.c
│ │ ├── pt-fork.c
│ │ ├── pt-raise.c
│ │ ├── pthread-pi-defines.sym
│ │ ├── pthread_attr_getaffinity.c
│ │ ├── pthread_attr_setaffinity.c
│ │ ├── pthread_getaffinity.c
│ │ ├── pthread_getcpuclockid.c
│ │ ├── pthread_getname.c
│ │ ├── pthread_kill.c
│ │ ├── pthread_mutex_cond_lock.c
│ │ ├── pthread_setaffinity.c
│ │ ├── pthread_setname.c
│ │ ├── pthread_sigqueue.c
│ │ ├── pthread_yield.c
│ │ ├── raise.c
│ │ ├── register-atfork.c
│ │ ├── rtld-lowlevel.h
│ │ ├── s390
│ │ │ ├── bits
│ │ │ │ ├── pthreadtypes.h
│ │ │ │ └── semaphore.h
│ │ │ ├── fork.c
│ │ │ ├── jmp-unwind.c
│ │ │ ├── lowlevellock.h
│ │ │ ├── not-cancel.h
│ │ │ ├── pthread_once.c
│ │ │ ├── s390-32
│ │ │ │ ├── clone.S
│ │ │ │ ├── pt-vfork.S
│ │ │ │ ├── sysdep-cancel.h
│ │ │ │ └── vfork.S
│ │ │ └── s390-64
│ │ │ ├── Versions
│ │ │ ├── clone.S
│ │ │ ├── pt-vfork.S
│ │ │ ├── sysdep-cancel.h
│ │ │ ├── timer_create.c
│ │ │ ├── timer_delete.c
│ │ │ ├── timer_getoverr.c
│ │ │ ├── timer_gettime.c
│ │ │ ├── timer_settime.c
│ │ │ └── vfork.S
│ │ ├── sem_post.c
│ │ ├── sem_timedwait.c
│ │ ├── sem_trywait.c
│ │ ├── sem_wait.c
│ │ ├── sh
│ │ │ ├── bits
│ │ │ │ ├── pthreadtypes.h
│ │ │ │ └── semaphore.h
│ │ │ ├── clone.S
│ │ │ ├── createthread.c
│ │ │ ├── fork.c
│ │ │ ├── libc-lowlevellock.S
│ │ │ ├── lowlevel-atomic.h
│ │ │ ├── lowlevellock.S
│ │ │ ├── lowlevellock.h
│ │ │ ├── lowlevelrobustlock.S
│ │ │ ├── not-cancel.h
│ │ │ ├── pt-vfork.S
│ │ │ ├── pthread_barrier_wait.S
│ │ │ ├── pthread_cond_broadcast.S
│ │ │ ├── pthread_cond_signal.S
│ │ │ ├── pthread_cond_timedwait.S
│ │ │ ├── pthread_cond_wait.S
│ │ │ ├── pthread_once.S
│ │ │ ├── pthread_rwlock_rdlock.S
│ │ │ ├── pthread_rwlock_timedrdlock.S
│ │ │ ├── pthread_rwlock_timedwrlock.S
│ │ │ ├── pthread_rwlock_unlock.S
│ │ │ ├── pthread_rwlock_wrlock.S
│ │ │ ├── sem_post.S
│ │ │ ├── sem_timedwait.S
│ │ │ ├── sem_trywait.S
│ │ │ ├── sem_wait.S
│ │ │ ├── sh4
│ │ │ │ └── lowlevellock.h
│ │ │ ├── smp.h
│ │ │ ├── sysdep-cancel.h
│ │ │ └── vfork.S
│ │ ├── sigtimedwait.c
│ │ ├── sigwait.c
│ │ ├── sigwaitinfo.c
│ │ ├── sleep.c
│ │ ├── smp.h
│ │ ├── sparc
│ │ │ ├── Makefile
│ │ │ ├── Versions
│ │ │ ├── aio_cancel.c
│ │ │ ├── bits
│ │ │ │ ├── local_lim.h
│ │ │ │ ├── pthreadtypes.h
│ │ │ │ └── semaphore.h
│ │ │ ├── fork.c
│ │ │ ├── internaltypes.h
│ │ │ ├── lowlevellock.h
│ │ │ ├── not-cancel.h
│ │ │ ├── pthread_barrier_destroy.c
│ │ │ ├── pthread_barrier_init.c
│ │ │ ├── pthread_barrier_wait.c
│ │ │ ├── pthread_once.c
│ │ │ ├── sem_init.c
│ │ │ ├── sem_post.c
│ │ │ ├── sem_timedwait.c
│ │ │ ├── sem_wait.c
│ │ │ ├── sparc32
│ │ │ │ ├── clone.S
│ │ │ │ ├── lowlevellock.c
│ │ │ │ ├── pt-vfork.S
│ │ │ │ ├── pthread_barrier_wait.c
│ │ │ │ ├── sem_post.c
│ │ │ │ ├── sem_timedwait.c
│ │ │ │ ├── sem_trywait.c
│ │ │ │ ├── sem_wait.c
│ │ │ │ ├── sparcv9
│ │ │ │ │ ├── Makefile
│ │ │ │ │ ├── cpu_relax.S
│ │ │ │ │ ├── pthread_barrier_wait.c
│ │ │ │ │ ├── sem_post.c
│ │ │ │ │ ├── sem_timedwait.c
│ │ │ │ │ ├── sem_trywait.c
│ │ │ │ │ └── sem_wait.c
│ │ │ │ ├── sysdep-cancel.h
│ │ │ │ └── vfork.S
│ │ │ └── sparc64
│ │ │ ├── Makefile
│ │ │ ├── Versions
│ │ │ ├── clone.S
│ │ │ ├── cpu_relax.S
│ │ │ ├── pt-vfork.S
│ │ │ ├── sysdep-cancel.h
│ │ │ ├── timer_create.c
│ │ │ ├── timer_delete.c
│ │ │ ├── timer_getoverr.c
│ │ │ ├── timer_gettime.c
│ │ │ ├── timer_settime.c
│ │ │ └── vfork.S
│ │ ├── structsem.sym
│ │ ├── timer_create.c
│ │ ├── timer_delete.c
│ │ ├── timer_getoverr.c
│ │ ├── timer_gettime.c
│ │ ├── timer_routines.c
│ │ ├── timer_settime.c
│ │ ├── unregister-atfork.c
│ │ ├── unwindbuf.sym
│ │ ├── x86
│ │ │ ├── Makefile
│ │ │ ├── bits
│ │ │ │ ├── pthreadtypes.h
│ │ │ │ └── semaphore.h
│ │ │ ├── elision-conf.c
│ │ │ ├── elision-conf.h
│ │ │ ├── elision-lock.c
│ │ │ ├── elision-timed.c
│ │ │ ├── elision-trylock.c
│ │ │ ├── elision-unlock.c
│ │ │ ├── force-elision.h
│ │ │ ├── hle.h
│ │ │ ├── init-arch.c
│ │ │ ├── init-arch.h
│ │ │ ├── pthread_mutex_cond_lock.c
│ │ │ ├── pthread_mutex_lock.c
│ │ │ ├── pthread_mutex_timedlock.c
│ │ │ └── pthread_mutex_trylock.c
│ │ └── x86_64
│ │ ├── Implies
│ │ ├── Versions
│ │ ├── cancellation.S
│ │ ├── clone.S
│ │ ├── compat-timer.h
│ │ ├── fork.c
│ │ ├── libc-cancellation.S
│ │ ├── libc-lowlevellock.S
│ │ ├── librt-cancellation.S
│ │ ├── lowlevellock.S
│ │ ├── lowlevellock.h
│ │ ├── lowlevelrobustlock.S
│ │ ├── not-cancel.h
│ │ ├── pt-vfork.S
│ │ ├── pthread_barrier_wait.S
│ │ ├── pthread_cond_broadcast.S
│ │ ├── pthread_cond_signal.S
│ │ ├── pthread_cond_timedwait.S
│ │ ├── pthread_cond_wait.S
│ │ ├── pthread_once.S
│ │ ├── pthread_rwlock_rdlock.S
│ │ ├── pthread_rwlock_timedrdlock.S
│ │ ├── pthread_rwlock_timedwrlock.S
│ │ ├── pthread_rwlock_unlock.S
│ │ ├── pthread_rwlock_wrlock.S
│ │ ├── pthread_setaffinity.c
│ │ ├── pthread_spin_init.c
│ │ ├── pthread_spin_unlock.S
│ │ ├── sem_post.S
│ │ ├── sem_timedwait.S
│ │ ├── sem_trywait.S
│ │ ├── sem_wait.S
│ │ ├── sysdep-cancel.h
│ │ ├── timer_create.c
│ │ ├── timer_delete.c
│ │ ├── timer_getoverr.c
│ │ ├── timer_gettime.c
│ │ ├── timer_settime.c
│ │ └── vfork.S
│ └── x86_64
│ ├── 64
│ │ └── shlib-versions
│ ├── Makefile
│ ├── configure
│ ├── configure.ac
│ ├── pthread_spin_init.c
│ ├── pthread_spin_lock.S
│ ├── pthread_spin_trylock.S
│ ├── pthread_spin_unlock.S
│ ├── pthreaddef.h
│ ├── tcb-offsets.sym
│ ├── tls.h
│ └── x32
│ ├── shlib-versions
│ └── tls.h
├── tpp.c
├── tst-_res1.c
├── tst-_res1mod1.c
├── tst-_res1mod2.c
├── tst-abstime.c
├── tst-align.c
├── tst-align2.c
├── tst-align3.c
├── tst-atfork1.c
├── tst-atfork2.c
├── tst-atfork2mod.c
├── tst-attr1.c
├── tst-attr2.c
├── tst-attr3.c
├── tst-backtrace1.c
├── tst-barrier1.c
├── tst-barrier2.c
├── tst-barrier3.c
├── tst-barrier4.c
├── tst-basic1.c
├── tst-basic2.c
├── tst-basic3.c
├── tst-basic4.c
├── tst-basic5.c
├── tst-basic6.c
├── tst-basic7.c
├── tst-cancel-self-cancelstate.c
├── tst-cancel-self-canceltype.c
├── tst-cancel-self-cleanup.c
├── tst-cancel-self-testcancel.c
├── tst-cancel-self.c
├── tst-cancel-wrappers.sh
├── tst-cancel1.c
├── tst-cancel10.c
├── tst-cancel11.c
├── tst-cancel12.c
├── tst-cancel13.c
├── tst-cancel14.c
├── tst-cancel15.c
├── tst-cancel16.c
├── tst-cancel17.c
├── tst-cancel18.c
├── tst-cancel19.c
├── tst-cancel2.c
├── tst-cancel20.c
├── tst-cancel21-static.c
├── tst-cancel21.c
├── tst-cancel22.c
├── tst-cancel23.c
├── tst-cancel24-static.cc
├── tst-cancel24.cc
├── tst-cancel25.c
├── tst-cancel3.c
├── tst-cancel4.c
├── tst-cancel5.c
├── tst-cancel6.c
├── tst-cancel7.c
├── tst-cancel8.c
├── tst-cancel9.c
├── tst-cancelx1.c
├── tst-cancelx10.c
├── tst-cancelx11.c
├── tst-cancelx12.c
├── tst-cancelx13.c
├── tst-cancelx14.c
├── tst-cancelx15.c
├── tst-cancelx16.c
├── tst-cancelx17.c
├── tst-cancelx18.c
├── tst-cancelx2.c
├── tst-cancelx20.c
├── tst-cancelx21.c
├── tst-cancelx3.c
├── tst-cancelx4.c
├── tst-cancelx5.c
├── tst-cancelx6.c
├── tst-cancelx7.c
├── tst-cancelx8.c
├── tst-cancelx9.c
├── tst-cleanup0.c
├── tst-cleanup0.expect
├── tst-cleanup1.c
├── tst-cleanup2.c
├── tst-cleanup3.c
├── tst-cleanup4.c
├── tst-cleanup4aux.c
├── tst-cleanupx0.c
├── tst-cleanupx0.expect
├── tst-cleanupx1.c
├── tst-cleanupx2.c
├── tst-cleanupx3.c
├── tst-cleanupx4.c
├── tst-clock1.c
├── tst-clock2.c
├── tst-cond-except.c
├── tst-cond1.c
├── tst-cond10.c
├── tst-cond11.c
├── tst-cond12.c
├── tst-cond13.c
├── tst-cond14.c
├── tst-cond15.c
├── tst-cond16.c
├── tst-cond17.c
├── tst-cond18.c
├── tst-cond19.c
├── tst-cond2.c
├── tst-cond20.c
├── tst-cond21.c
├── tst-cond22.c
├── tst-cond23.c
├── tst-cond24.c
├── tst-cond25.c
├── tst-cond3.c
├── tst-cond4.c
├── tst-cond5.c
├── tst-cond6.c
├── tst-cond7.c
├── tst-cond8-static.c
├── tst-cond8.c
├── tst-cond9.c
├── tst-context1.c
├── tst-default-attr.c
├── tst-detach1.c
├── tst-dlsym1.c
├── tst-eintr1.c
├── tst-eintr2.c
├── tst-eintr3.c
├── tst-eintr4.c
├── tst-eintr5.c
├── tst-exec1.c
├── tst-exec2.c
├── tst-exec3.c
├── tst-exec4.c
├── tst-execstack-mod.c
├── tst-execstack.c
├── tst-exit1.c
├── tst-exit2.c
├── tst-exit3.c
├── tst-fini1.c
├── tst-fini1mod.c
├── tst-flock1.c
├── tst-flock2.c
├── tst-fork1.c
├── tst-fork2.c
├── tst-fork3.c
├── tst-fork4.c
├── tst-getpid1.c
├── tst-getpid2.c
├── tst-getpid3.c
├── tst-initializers1-c89.c
├── tst-initializers1-c99.c
├── tst-initializers1-gnu89.c
├── tst-initializers1-gnu99.c
├── tst-initializers1.c
├── tst-join1.c
├── tst-join2.c
├── tst-join3.c
├── tst-join4.c
├── tst-join5.c
├── tst-join6.c
├── tst-key1.c
├── tst-key2.c
├── tst-key3.c
├── tst-key4.c
├── tst-kill1.c
├── tst-kill2.c
├── tst-kill3.c
├── tst-kill4.c
├── tst-kill5.c
├── tst-kill6.c
├── tst-locale1.c
├── tst-locale2.c
├── tst-mutex1.c
├── tst-mutex2.c
├── tst-mutex3.c
├── tst-mutex4.c
├── tst-mutex5.c
├── tst-mutex5a.c
├── tst-mutex6.c
├── tst-mutex7.c
├── tst-mutex7a.c
├── tst-mutex8-static.c
├── tst-mutex8.c
├── tst-mutex9.c
├── tst-mutexpi1.c
├── tst-mutexpi2.c
├── tst-mutexpi3.c
├── tst-mutexpi4.c
├── tst-mutexpi5.c
├── tst-mutexpi5a.c
├── tst-mutexpi6.c
├── tst-mutexpi7.c
├── tst-mutexpi7a.c
├── tst-mutexpi8-static.c
├── tst-mutexpi8.c
├── tst-mutexpi9.c
├── tst-mutexpp1.c
├── tst-mutexpp10.c
├── tst-mutexpp6.c
├── tst-oddstacklimit.c
├── tst-once1.c
├── tst-once2.c
├── tst-once3.c
├── tst-once4.c
├── tst-oncex3.c
├── tst-oncex4.c
├── tst-popen1.c
├── tst-pthread-attr-affinity.c
├── tst-pthread-getattr.c
├── tst-raise1.c
├── tst-robust1.c
├── tst-robust2.c
├── tst-robust3.c
├── tst-robust4.c
├── tst-robust5.c
├── tst-robust6.c
├── tst-robust7.c
├── tst-robust8.c
├── tst-robust9.c
├── tst-robustpi1.c
├── tst-robustpi2.c
├── tst-robustpi3.c
├── tst-robustpi4.c
├── tst-robustpi5.c
├── tst-robustpi6.c
├── tst-robustpi7.c
├── tst-robustpi8.c
├── tst-robustpi9.c
├── tst-rwlock1.c
├── tst-rwlock10.c
├── tst-rwlock11.c
├── tst-rwlock12.c
├── tst-rwlock13.c
├── tst-rwlock14.c
├── tst-rwlock2.c
├── tst-rwlock2a.c
├── tst-rwlock3.c
├── tst-rwlock4.c
├── tst-rwlock5.c
├── tst-rwlock6.c
├── tst-rwlock7.c
├── tst-rwlock8.c
├── tst-rwlock9.c
├── tst-sched1.c
├── tst-sem1.c
├── tst-sem10.c
├── tst-sem11-static.c
├── tst-sem11.c
├── tst-sem12-static.c
├── tst-sem12.c
├── tst-sem13.c
├── tst-sem14.c
├── tst-sem2.c
├── tst-sem3.c
├── tst-sem4.c
├── tst-sem5.c
├── tst-sem6.c
├── tst-sem7.c
├── tst-sem8.c
├── tst-sem9.c
├── tst-setuid1-static.c
├── tst-setuid1.c
├── tst-signal1.c
├── tst-signal2.c
├── tst-signal3.c
├── tst-signal4.c
├── tst-signal5.c
├── tst-signal6.c
├── tst-signal7.c
├── tst-spin1.c
├── tst-spin2.c
├── tst-spin3.c
├── tst-stack1.c
├── tst-stack2.c
├── tst-stack3.c
├── tst-stackguard1-static.c
├── tst-stackguard1.c
├── tst-stdio1.c
├── tst-stdio2.c
├── tst-sysconf.c
├── tst-tls1.c
├── tst-tls2.c
├── tst-tls3.c
├── tst-tls3mod.c
├── tst-tls4.c
├── tst-tls4moda.c
├── tst-tls4modb.c
├── tst-tls5.c
├── tst-tls5.h
├── tst-tls5mod.c
├── tst-tls5moda.c
├── tst-tls5modb.c
├── tst-tls5modc.c
├── tst-tls5modd.c
├── tst-tls5mode.c
├── tst-tls5modf.c
├── tst-tls6.sh
├── tst-tpp.h
├── tst-tsd1.c
├── tst-tsd2.c
├── tst-tsd3.c
├── tst-tsd4.c
├── tst-tsd5.c
├── tst-tsd6.c
├── tst-typesizes.c
├── tst-umask1.c
├── tst-unload.c
├── tst-vfork1.c
├── tst-vfork1x.c
├── tst-vfork2.c
├── tst-vfork2x.c
├── unwind.c
├── vars.c
└── version.c
46 directories, 913 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论