LinuxThreads 0.6 -- clone()-based POSIX threads library

LinuxThreads 0.6 -- clone()-based POSIX threads library

Post by Xavier Lero » Sun, 04 May 1997 04:00:00


It's my pleasure to announce the availability of LinuxThreads 0.6.

The LinuxThreads library implements POSIX threads for Linux with
kernel-level threads: each thread is a separate Unix process, sharing
its address space with the other threads through the new system call
clone(). Advantages include support for multiprocessors and absence of
any problems with blocking system calls.

The main changes from release 0.5 are:

* Validation of thread identifiers: no more crashes when operating on
  a thread that has exited (based on Pavel Krauz's ideas).
* Added fallback implementation of semaphores for the 386 and the
* Fixed a bug in signal handling causing false restarts of suspended
* Fixed a bug in realtime scheduling causing all threads to have
  default scheduling on Ix86 with libc5.
* With realtime scheduling, unlocking a mutex now restarts the
  highest priority thread waiting on the mutex, not the
  first-suspended thread (Richard Neitzel).
* Timing a process now returns cumulative times for all threads, not
  just times for the initial thread (suggested by Wolfram Gloger).
* Cleaned up name space (internal defs prefixed by __, weak aliases
  for non-portable extensions).
* MIPS port (contributed by Ralf Baechle).

In addition, the distribution now contains a fairly extensive list of
frequently asked questions.

LinuxThreads 0.6 is available at the following location:

General information on LinuxThreads can be found at:

- - Xavier Leroy

- --
This article has been digitally signed by the moderator, using PGP. has PGP key for validating signature.

PLEASE remember a short description of the software and the LOCATION.
This group is archived at

Version: 2.6.3ia
Charset: noconv



1. New clone based POSIX threads package

Hi all

        I am glad to announce first __test__ release of my threads
with POSIX 1c behavior. Threads are based on Linux specific clone system
call so it isn't another user level engine within one process. Now it is
working on Intel 386 or above machines (you can port it to other
Package contains basic thread safe library based on libc-5.3.12 and
introduced for MIT POSIX threads.

        You can download source and/or binary distribution from:

Kernel related problem:
        I got this message to syslog:

Aug  5 11:53:43 klinux kernel: put_page: page already exists 0063d025
Aug  5 11:53:43 klinux last message repeated 43 times

this happens when I run on busy machine test program with about 100
You can look at README in clthreads package how generate this kernel
message. Is it bug or something else? I don't know.

Clone discussion:
        I have one suggestion to discussion about clone system call:
If one thread create another with clone and then die the parent of this
thread with unix process terminology will be process with pid 1. Thus if
second thread die the signal about this event will be send to pid 1. I
like to catch all this signals but it is now impossible without great
overhead. It could be good another parent/child relations on cloned

Please Cc: any discussion about this package to me.

2. Slack, Debian, why?

3. linuxthreads 0.1 - kernel-level Posix threads for Linux

4. Boot device order on Primergy 351

5. intermittent hangs with threads (clone() bug?/linuxthreads bug?)

6. kde 2.1.1 dcop server problem

7. Runaway Linux processes-Native Posix Threading Library- Old linux threads

8. Installing Linux

9. HELP: Unable to compile xwave 0.6 (X-Windows based wave sound file player)

10. clone(), threads, and POSIX

11. POSIX threads, thread-specific data: what about the "main" thread?

12. Is DCEthreads based on Posix thread under Digital Unix 4.0f?

13. posix threads library bos.rte.libpthreads on 4.2.1