Discussion:
[fpc-devel] function GetCurrentThreadId vs variable ThreadID
Alexander Grotewohl via fpc-devel
2021-03-28 19:46:29 UTC
Permalink
looks like threadid is assigned to getcurrentthreadid in an initthread() function in thread.inc.

but: getcurrentthreadid looks to be mapped to a changeable thread manager which is why that might seem weird in the docs..

--
Alexander Grotewohl
https://dcclost.com

________________________________
From: fpc-devel <fpc-devel-***@lists.freepascal.org> on behalf of Martin via fpc-devel <fpc-***@lists.freepascal.org>
Sent: Sunday, March 28, 2021, 3:35 PM
To: fpc-devel
Cc: Martin
Subject: [fpc-devel] function GetCurrentThreadId vs variable ThreadID

I looked at the doc
https://www.freepascal.org/docs-html/rtl/system/getcurrentthreadid.html
https://www.freepascal.org/docs-html/rtl/system/threadid.html

But the entry for ThreadId only says "Current Thread ID."
Which is not distinguishing it from GetCurrentThreadId.

So what is the difference?

_______________________________________________
fpc-devel maillist - fpc-***@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel
Sven Barth via fpc-devel
2021-04-04 18:18:12 UTC
Permalink
Post by Alexander Grotewohl via fpc-devel
looks like threadid is assigned to getcurrentthreadid in an
initthread() function in thread.inc.
but: getcurrentthreadid looks to be mapped to a changeable thread
manager which is why that might seem weird in the docs..
Correct. GetCurrentThreadID always calls through the thread manager to
retrieve the current thread's ID while ThreadID is initialized in the
thread's initialization. This make a difference if you're dealing with
external threads (those not started through the RTL, but from e.g. C
code). Though depending on the threading implementation it /might/ be
that it sets up ThreadID nevertheless. In essence: Best use
GetCurrentThreadID.

Regards,
Sven

Loading...