Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
C
Latest commit
a5ec641
Mar 28, 2013
Permalink
| Failed to load latest commit information. | |||
|
|
Makefile |
|
|
|
|
README |
|
|
|
|
alarm.c |
|
|
|
|
alarm_cond.c |
|
|
|
|
alarm_fork.c |
|
|
|
|
alarm_mutex.c |
|
|
|
|
alarm_thread.c |
|
|
|
|
atfork.c |
|
|
|
|
backoff.c |
|
|
|
|
barrier.c |
|
|
|
|
barrier.h |
|
|
|
|
barrier_main.c |
|
|
|
|
cancel.c |
|
|
|
|
cancel_async.c |
|
|
|
|
cancel_cleanup.c |
|
|
|
|
cancel_disable.c |
|
|
|
|
cancel_subcontract.c |
|
|
|
|
cond.c |
|
|
|
|
cond_attr.c |
|
|
|
|
cond_dynamic.c |
|
|
|
|
cond_static.c |
|
|
|
|
crew.c |
|
|
|
|
errors.h |
|
|
|
|
flock.c |
|
|
|
|
getlogin.c |
|
|
|
|
hello.c |
|
|
|
|
inertia.c |
|
|
|
|
lifecycle.c |
|
|
|
|
mutex_attr.c |
|
|
|
|
mutex_dynamic.c |
|
|
|
|
mutex_static.c |
|
|
|
|
once.c |
|
|
|
|
pipe.c |
|
|
|
|
putchar.c |
|
|
|
|
rwlock.c |
|
|
|
|
rwlock.h |
|
|
|
|
rwlock_main.c |
|
|
|
|
rwlock_try_main.c |
|
|
|
|
sched_attr.c |
|
|
|
|
sched_thread.c |
|
|
|
|
semaphore_signal.c |
|
|
|
|
semaphore_wait.c |
|
|
|
|
server.c |
|
|
|
|
sigev_thread.c |
|
|
|
|
sigwait.c |
|
|
|
|
susp.c |
|
|
|
|
thread.c |
|
|
|
|
thread_attr.c |
|
|
|
|
thread_error.c |
|
|
|
|
trylock.c |
|
|
|
|
tsd_destructor.c |
|
|
|
|
tsd_once.c |
|
|
|
|
workq.c |
|
|
|
|
workq.h |
|
|
|
|
workq_main.c |
|
|
README
These are the source files for the programming examples in "Programming With POSIX(r) Threads". The Makefile is pre-configured for Digital UNIX, but includes the appropriate definitions to build on Solaris (uncomment the Solaris lines and comment the Digital UNIX lines). alarm.c Simple synchronous alarm clock alarm_cond.c Threaded alarm clock using condition variable alarm_fork.c Alarm clock using fork asychrony alarm_mutex.c Threaded alarm clock using mutex alarm_thread.c Alarm clock using thread asynchrony atfork.c Demonstrate pthread_atfork() backoff.c Demonstrate mutex hierarchy backoff barrier.c Implementation of barrier package barrier_main.c Demonstrate use of barrier package cancel.c Demonstrate cancellation cancel_async.c Demonstrate asyncronous cancellation cancel_cleanup.c Demonstrate cancellation cleanup cancel_disable.c Demonstrate disabling cancellation cancel_subcontract.c Demonstrate cancellation of "subcontractors" cond.c Demonstrate use of condition variables cond_attr.c Demonstrate condition variable attributes cond_dynamic.c Demonstrate dynamic init of condition variable cond_static.c Demonstrate static init of condition variable crew.c A simple threaded work crew flock.c Demonstrate use of file locking getlogin.c Demonstrate reentrant user functions hello.c Demonstrate thread creation inertia.c Demonstrate "thread inertia" errors lifecycle.c Demonstrate "thread lifecycle" mutex_attr.c Demonstrate mutex attributes mutex_dynamic.c Demonstrate dynamic initialization of mutex mutex_static.c Demonstrate static initialization of mutex once.c Demonstrate use of pthread_once() pipe.c A simple threaded pipeline putchar.c Demonstrate thread-safe use of putchar() rwlock.c Implementation of read/write lock package rwlock_main.c Demonstrate use of read/write lock package rwlock_try_main.c Demonstrate use of read/write lock package sched_attr.c Demonstrate thread scheduling attributes sched_thread.c Demonstrate use of thread scheduling functions semaphore_signal.c Demonstrate use of semaphores with signals semaphore_wait.c Demonstrate use of semaphores server.c A simple threaded client/server program sigev_thread.c Demonstrate use of SIGEV_THREAD mechanism sigwait.c Demonstrate use of sigwait() susp.c Demonstrate use of pthread_kill() thread.c Demonstrate simple concurrent I/O thread_attr.c Demonstrate thread attributes thread_error.c Demonstrate POSIX thread error mechanism trylock.c Demonstrate use of pthread_mutex_trylock() tsd_destructor.c Demonstrate thread-specific data destructors tsd_once.c Demonstrate thread-specific data key creation workq.c Implementation of work queue package workq_main.c Demonstrate use of work queue package Header files: barrier.h Definitions for barrier package errors.h General headers and error macros rwlock.h Definitions for read/write lock package workq.h Definitions for work queue package Programs with arguments or special behavior: alarm, alarm_fork, The alarm programs will prompt for alarm_thread, alarm_mutex, commands until terminated by ^D alarm_cond (EOF). Commands are "<n> <s>" where <s> (the remainder of the line) is a message to print after <n> seconds. atfork [hang] Run with an argument of 0 to omit atfork handlers -- program will hang. backoff [backoff [delay]] Run with first argument of 0, will not back off on mutex collision, and will usually hang. Second argument can be specified greater than 0 to yield (increasing chances of hang on uniprocessor), or less than 0 to sleep for a second. crew string path First argument is a search string, second is a file path. flock Threads will prompt alternately for input. pipe Prompts for integers to feed to pipeline; enter "=" to pop a result. putchar [unsync] Run with argument of 0 to concurrently call putchar_unlocked from multiple threads. server Threads each prompt for input, and echo it 3 times -- server prevents output while waiting for input. sigwait Waits for 5 SIGINT signals (^C) thread One thread writes to stdout while another waits for input from stdin. (Satisfy the read to exit.) /---[ Dave Butenhof ]-----------------------[ butenhof@zko.dec.com ]---\ | Digital Equipment Corporation 110 Spit Brook Rd ZKO2-3/Q18 | | 603.881.2218, FAX 603.881.0120 Nashua NH 03062-2698 | \-----------------[ Better Living Through Concurrency ]----------------/