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

Reply via email to