On Wednesday 04 June 2008 16:45:30 Fons Adriaensen wrote: > On Wed, Jun 04, 2008 at 04:26:15PM -0400, Felipe Sateler wrote: > > This means changing the API for this release, and tying the csound ABI to > > pthread's. If pthread decides to change pthread_t for some reason, then > > csound's ABI will change too. > > Only the *binary* interface would change. Recompilation is > all you need in that case. It would be necessary *anyway*. Nope. You need source change. You expect this to work? pthread_t func(); void* data = func(); Evidently, it won't work. OTOH, is func return pthread_t* casted to void*, it will, and won't change the ABI either, and won't tie the csound ABI to pthread (or to csound's use of pthreads, should someday a change to another library be needed). > Or do you expect any binary code using threads to still > work if a platform's representation of pthread_t changes ? > > Wake up from your dreams please. Not all programs will use pthread as a threading library. BTW, I think that csound shouldn't provide any threading API. It's up to the user to prepare for multithreading if desired. Perhaps a function that starts csound in the background should be all that csound should provide in terms of threading. -- Felipe Sateler