|
|
Pthreads library
|
This Pthreads library is a partial and experimental implementation
of the Posix.1c standard for thread programming. It is only intented for
educational purposes, not for really productive applications. I wrote this
library to show internal details while presenting courses of system programming.
The library is totally implemented in user space, using none of the
system call (like clone(2)) provided by the kernel to help implement
threads library. It only works on Intel based Linux systems, because of
the processor dependant stack handling.
All the typedef and functions use the "Pthread_" prefix,
while the real Posix.1c implementations use the "pthread_" prefix.
This is intented to avoid confusion when the C library automatically includes
"pthread_" typedefs. So the Pthreads library can be installed
on a system that has already a pthread library. A shell script named pthread_2_Pthread.sh
is provided to convert the source files, with the help of the Sed tool.
The library uses the SIGALRM signal to schedule the threads.
So you must not uses this signal, nor the ITIMER_REAL timer in
your application. In fact, I suspect that a large part of the sleeping
system calls and functions won't work (sleep(3), usleep(3),
setitimer(2)…)
Note that most of the Posix.1c functions are not implemented yet, the
scheduler is ridiculous, a thousand of bugs are still there, but I think
that the Pthreads library can be useful to understand how a real user-space
thread libraries could be built.
| |
Download
| |
This library is only interesting for source code studying, so I do not
provide any binary-only package!
|
|