[fpc-devel] Why FreeBSD sem_init() works different to Linux?

Sven Barth pascaldragon at googlemail.com
Thu Feb 7 10:13:29 CET 2013


Am 07.02.2013 09:46, schrieb Graeme Geldenhuys:
> On 2013-02-06 20:17, Sven Barth wrote:
>> If you just define your own semaphore class that contains the platform
>> specific types and lock and unlock methods then you only need to add an
>> additional "array[0..4] of Longint" after the "sem_t" field for FreeBSD.
>> Then you should be okay.
> Yes that will work, but it simply moves the problems or IFDEF's to a
> different location.
But the ifdefs will only be in one location. If I've understood you 
correctly, than your currently problem also is that you have the 
"{$ifdef windows}...{$elseif linux}...{$endif}" code in multiple places. 
This way you'd reduce that to one and rely on OS functionality 
nevertheless (which is known to work - if used correctly :P ).

Regards,
Sven



More information about the fpc-devel mailing list