Bo Berglund via lazarus <lazarus@lists.lazarus-ide.org> schrieb am Mo., 11. Nov. 2019, 08:38:
> On Mon, 11 Nov 2019 00:20:59 +0100, Sven Barth via lazarus > <lazarus@lists.lazarus-ide.org> wrote: > > >Bo Berglund via lazarus <lazarus@lists.lazarus-ide.org> schrieb am So., > 10. > >Nov. 2019, 23:29: > > > >> I have ported a console application from Windows to Linux (Raspbian > >> Buster) and I got to wonder about the check for a defined symbol > >> appearing in the beginning of the code as produced by the Lazarus > >> template: > >> > >> uses > >> {$IFDEF UNIX}{$IFDEF UseCThreads} > >> cthreads, > >> {$ENDIF}{$ENDIF} > >> > >> Would it not be enough to use this instead: > >> uses > >> {$IFDEF UNIX} > >> cthreads, > >> {$ENDIF} > >> > >> Is there a heavy hit on perfortmance or such if the conditional is not > >> used but instead just checking if we are on UNIX? > >> > >> What happens if one does not use threads in ones code but removes the > >> conditional UseCThreads as shown above? > >> > >> For example if I am using Indy10 objects they are threaded so in that > >> case I assume I need to use cthreads. But in any other case, how can I > >> know that some used package might rely on threads and so needs this > >> uses clause? > >> > >> Basically: > >> What damage does it do if cthreads are in the uses clause but no > >> thread appears in the program code (yet)? > >> > > > >The "damage" is that your application will link against the C library. > >Sometimes that's not desirable and quite some FPC code can be used without > >that (e.g. the compiler itself does not need to link against the C library > >and thus the binary is usable on various Linux distributions and > versions). > > > > So if one does not enable use of cthreads there are still threads > available also on Linux? > I interpreted the existence of this switch as "if you want to use > threads on Linux you need to enable UseCThreads"... > > If I do not have cthreads as a uses item but still want to use for > example Indy10, will it still work? > You asked what the damage is if one does not use threads. If you use threads then you *must* use the cthreads unit on Unix platforms. Regards, Sven >
-- _______________________________________________ lazarus mailing list lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus