Am 27.08.2010 12:27, schrieb Maik Wojcieszak:
Hi,
What exactly does this
System.IsMultiThread := true;
do ?
If I use external threads with my thread creation callback it works fine
with
System.IsMultiThread := false;
If I set it to true the app crashes when creating the first threads.
If I use the suggested initialisation with the dummy thread it works
too, but with
System.IsMultiThread := true;
Thanks in advance,
Maik
I did a quick search in the source of the RTL. IsMultiThread is mostly
tested to check whether multi threading was already initialised.
Especially on POSIX systems you MUST NOT set IsMultiThread to True or
the threadvar system won't be initialized (win32 does a more
"intelligent" test).
The interesting thing is though that IsMultiThread is never set to True
by the RTL in POSIX systems...
The creation of a dummy thread should be enough. You can set
IsMultiThread to true after the thread has run though (to circumvent the
POSIX problem I mentioned above).
Regards,
Sven
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus