[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Thread deficiencies



> Since the implementation of pthreads is not likely in the time frame of the
> LSB specification, then a compromise might be to standardize on the
> pthreads API's except for the POSIX signalling behaviour.   The
> specification could say that POSIX signalling is preferred; however,
> "clone" would be temporarily allowed until the next revision of the LSB
> specification.

"temporarily". I hope you are joking.

clone() is the fundamental Linux API for high performance threaded applications,
POSIX.4 is a nasty hackish pile of glue heavily constrained by portability
requirements that make it unsuitable for absolutely maximum performance. POSIX.4
does remarkably well considering its requirements but it isnt flexible or
clean enough for many apps.

A simple example - posix.4 doesnt allow different threads to be running with
their own effective uid - criticial for things like ftp servers and other
daemons doing per user authentication (eg pop3/imap).

Similarly the combination of POSIX.4 signal delivery rules and real time
signals creates an impractical and unusable mess where the time order
sequencing of queued signals is lost to applications as the signals will appear
scattered across multiple queues. 

pthreads belongs in the spec, its an important cross platform API, but pthreads
is not sufficient for many purposes. clone() is a real Linux API, it should
be there, documented and present. It is also becoming a cross platform API
by the bizarre path of other OS's acquiring it in order to do Linux 
emulation. Thus clone() should be and remain a real LSB documented interface.


Alan


Reply to: