On 8 nov 2006, at 11:16, Ales Katona wrote:

A cleaner naming of problematic parts:

1. TThreadID is defined stand-alone not as a pthread_t, should be fixed. 2. TThreadHandler (the callback for resume, suspend) has result as DWord
while posix stuff (pthread_kill etc.) usualy return cInt
3. in linux I saw pthreads functions return longint, I think this is
also investigation worthy.

Question about #1. How should this be handled? Not sure if I can "use"
unixtypes in sysosh.inc...

No, you probably can't since that would add all those types to the interface of the system unit. But in my mail I proposed a simple solution: just do it the other way round (type pthread_t = TThreadID)

Question about #2. Well.. this is a tough nut? I suspect it's because of
various threading backends, but we need to handle those -1 properly if
nothing else but this implies going over by all used pthread functions
and seeing all possible values (which might be OS specific)

A similar solution as TThreadID probably (unless all OSes use signed results).

#3 is to be investigated.

Simply replace the longints with cInt. Those declarations are from before the time we had aliases for ctypes in the RTL.


Jonas
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to