> 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
