Answers to frequently asked questions for my implementation of POSIX threads ------------------------------------------------------------------------------- 1. Pthreads (1.0) What is Pthreads? (1.1) Where can I get info on Pthreads? 2. Getting, Building, Installing and Using proven's Pthreads (2.0) Where can I get the latest version of proven's Pthreads? (2.1) What platforms does proven's Pthreads run on? (2.2) What do I need to build proven's Pthreads? (2.3) How do I install proven's Pthreads? 3. Known Problems (3.0) Tests (3.1) Installation (3.2) Missing functionality (3.3) Signals ------------------------------------------------------------------------------- 1. Pthreads (1.0) What is Pthreads? Pthreads stands for POSIX threads and is based on the POSIX 1003.1c 1995 thread standard. This standard passed international Standards Organization (ISO) Committee Document (CD) balloting in February 1995 and got the IEEE Standards Board approval in June 1995. (1.1) Where can I get info on Pthreads? You can call IEEE (908) 562-3800 which is the organization which POSIX belongs, and ask for POSIX 1003.1c (not 1003.4a) draft 10 (the standard won't be out until sometime in 1996). The draft costs $30.00 plus shipping which for me was $4.00. The IEEE doesn't make any of the standards available online. I have made documentation for some of the functions available online. To reference these use http://www.mit.edu:8001/people/proven/pthreads.html ------------------------------------------------------------------------------- 2. Getting, Building, Installing and Using proven's Pthreads (2.0) Where can I get the latest version of proven's Pthreads? The latest version is pthreads-1_60_beta6 was release on November 16, 1996 and is available from sipb.mit.edu:/pub/pthreads. (2.1) What platforms does proven's Pthreads run on? Lot's! It should run on the following platforms; the i386 processor running NetBSD-1.x, FreeBSD-2.x, BSDOS-2.0, Linux-1.2 and Linux-1.3; the r2000 (DECstation) running Ultrix-4.2; the Sparc running NetBSD-1.x, SunOS-4.1.3, Solaris-2.3, and Solaris-2.4; the alpha running OSF-2.3 and OSF-3.x; the SGI running IRIX-5.2; and the HPPA running HP/UX-9.x. Because it runs on so many platforms I don't get to compile and test every platform for every release. If you have a problem send mail to pthreads-bugs@mit.edu with the processor, OS, and version number along with a description of the bug. (2.2) What do I need to build proven's Pthreads? You will need gcc and gmake to build for all but NetBSD, FreeBSD and BSDOS. For those you may use either gmake or pmake (the native make). (2.3) How do I install proven's Pthreads? Installing pthreads is real easy. At the top level of pthreads do configure make make install It will be installed into the directory /usr/local/pthreads. If you don't like the location add a --prefix= option to configure. That's it. ------------------------------------------------------------------------------- 3. Known problems. (3.0) Tests Under SunOS-4.1.x there is a bug in the kernel that prevents test_sock_1 from passing. This bug has to do with a process tring to connect to itself. In respose I wrote test_sock_2 to test the socket code for SunOS which does work. You should have no problems using the socket code in SunOS so long as you don't write a program that need to connect to itself. (3.1) Installation The only know problem is on the SGI. You will need to use GNU tar instead of the native supplied one or edit the config.flags file and remove the -h option to tar. Aparently the -h option on IRIX 5.3 version of tar does the exact opposite of all the other versions of tar I've used and instead of following symbolic links and getting the file it archives the link. (3.2) Missing functionality The current release is missing cancelation, priority mutexes and others. I'm continuing to develope pthreads and I plan to put cancelation and priority mutexes and as much other stuff as I can into the 1_70 release (3.3) Signals Currently to intermix signals with pthreads you need to rename all calls to signal() and sigaction() to pthread_signal() and pthread_sigaction(). I plan to write real wrapper routines for signal() and sigaction() for the 1_70 release.