I've had the "honor" of looking at current TThread/pthreads/cthreads implementation in unix (FreeBSD to be precise) and found it extremely bad.
Not to criticize, I'm here to ask for permission/toughts on adding a few standard methods to TThreadManager. I would like to add semaphore functions to it, to be able to use them in Classes/TThread implementation. The reason for this is, that Classes is compiled BEFORE pthreads and as such I cannot use pthreads directly (and shouldn't for linking issues to libc) to implement threading in TThread. I see basicly 3 approaches: 1. add semaphore/mutex functions to TThreadManager record 2. add a new "semaphores" record 3. move the TThread - threading specific functions out of tthread and into a "TThreadTThreadManager" kind of thing. Eg: "start thread with this callback" and such which are currently used in tthread.inc Not sure which one is best.. Another thing. I noticed that FreeBSD has 3 implementations of pthreads. libpthread, Libc_r (reentrant) and "libthr" (1:1 kernel threads). Currently fpc does some sort of automagical "descision" between libc and libpthread. I think users should be able to specify this somehow. I've cleaned up unices I know off old {$IFDEF Linux} but I also want to add proper threading and remove the idiotic pipe/semaphore hack. Ales _______________________________________________ fpc-devel maillist - fpc-devel@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-devel