Bartosz Taudul
b0fc0d5dcc
Check if rpmalloc has to be initialized before each operation.
...
The C++11 spec states in [basic.stc.thread] thread storage duration:
2. A variable with thread storage duration shall be initialized before its
first odr-use (3.2) and, if constructed, shall be destroyed on thread exit.
Previously Tracy relied on the TLS data being initialized:
- During thread creation (MSVC).
- Or during first use in a thread, but the initialization was performed for
the whole TLS block.
It seems that new compilers are more granular with how they perform the
initialization, hence rpmalloc init has to be checked before each allocation,
as it cannot be "folded" into, for example, initialization of the profiler
itself.
2021-05-31 02:31:42 +02:00
Bartosz Taudul
05894f6f14
Shuffle code around to avoid error C2712.
2021-04-29 19:10:30 +02:00
joshuakr
eac23cead2
PR feedback
2021-04-09 15:33:01 -07:00
Niclas Olmenius
826affb0b5
add set thread to c api
2020-08-04 11:51:48 +02:00
Bartosz Taudul
0744355a67
Fix off-by-one (found by lispbub, #43 ).
2020-06-10 12:21:58 +02:00
Bartosz Taudul
69c5e667ae
Dynamically load Get/SetThreadDescription.
2020-04-07 21:33:03 +02:00
Bartosz Taudul
0d2e7f72a7
Move GetThreadHandleImpl() from header to source file.
...
This removes dependency on unistd.h header (required for syscall() on
linux), which includes a definition of getopt(), which may conflict with
a custom getopt implementation (for example, one that does work on
windows).
2020-02-11 14:40:49 +01:00
Bartosz Taudul
aa94df0845
Replace rpmalloc_thread_initialize with InitRPMallocThread().
2020-01-25 17:16:08 +01:00
Bartosz Taudul
a90004b983
Move Set/GetThreadName() to Tracy API.
2020-01-25 16:36:58 +01:00
Bartosz Taudul
6f31eb2a9d
Disable MSVC idiocy.
2020-01-20 22:49:03 +01:00
Bartosz Taudul
4eaa3d90dd
Thread ids are no longer pthread_t.
2019-12-13 15:57:08 +01:00
Bartosz Taudul
0f6101b19a
Fix mingw/cygwin thread name setter/getter.
2019-11-07 18:58:08 +01:00
Bartosz Taudul
71b54dd48a
Always collect thread names.
...
This fixes an issue when a thread was destroyed before its name could be
retrieved.
2019-08-14 16:52:04 +02:00
Bartosz Taudul
92b6da7cc2
SetThreadName() only works on the current thread.
...
This breaking change is required, because kernel trace facilities use
kernel thread ids, which are inaccessible from the pthread_t level.
2019-08-14 02:22:45 +02:00
Bartosz Taudul
8925d026a9
Cosmetics.
2019-08-14 01:57:36 +02:00
Bartosz Taudul
73cbf2eead
Use windows thread ids on cygwin.
2019-08-13 16:22:58 +02:00
Bartosz Taudul
94b470ba66
Chomp newline from end of thread string.
2019-07-03 16:12:37 +02:00
Rokas Kupstys
9bd1037347
Clean up imported functions in multi-dll projects.
2019-06-07 19:50:08 +03:00
Bartosz Taudul
ef5e30056e
Implement delayed initialization of the profiler.
...
Enabled on osx, ios.
2019-02-19 20:43:30 +01:00
Bartosz Taudul
3f914834b7
Hide rest of statics.
2019-02-19 19:33:37 +01:00
Rokas Kupstys
8157e3a0b3
Fix builds with MingW.
2019-01-19 13:53:10 +02:00
Bartosz Taudul
560fc34ae6
No pthread_setcancelstate on Android.
2018-09-07 17:21:44 +02:00
Till Rathmann
4968717313
Fixed compiler warning about unused variable in release builds.
2018-08-02 11:45:15 +02:00
Till Rathmann
37d5736bf5
Fixed compiler warnings.
2018-08-01 14:07:30 +02:00
Till Rathmann
dd042619e9
Support for multi-DLL projects.
2018-07-31 12:06:04 +02:00
Arvid Gerstmann
dfe3285252
Merged in Leandros99/tracy/pr-1 (pull request #11 )
...
Implement pthread_getname_np alternative if it's not available
2018-07-24 11:57:21 +00:00
Arvid Gerstmann
69dac3f611
Fix accessing the thread id on Android
2018-07-24 13:43:25 +02:00
Rokas Kupstys
01df5aa840
Fix targetting lower windows versions when using W10 SDK that is older than redstone2.
2018-07-19 11:08:41 +03:00
Rokas Kupstys
d290e04d45
Fix build when targeting earlier windows versions by defining _WIN32_WINNT.
2018-07-17 20:15:27 +03:00
Arvid Gerstmann
f04e67779c
Fix some minor code style issues
2018-07-14 13:46:25 +02:00
Arvid Gerstmann
6fb73a3d97
Implement getname alternative if it's not available
2018-07-14 13:26:55 +02:00
Tobias Widlund
b6cce4ddb6
Improve fixes for warnings as per request
2018-06-30 15:36:06 +02:00
Tobias Widlund
1c467a5847
Fix warning re shadowing, implicit conversion and added include <cstdio>
2018-06-30 11:47:27 +02:00
Bartosz Taudul
56bd01dfd1
Don't copy thread name needlessly.
2018-03-31 01:38:57 +02:00
Bartosz Taudul
813e265bc3
Initialize rpmalloc in SetThreadName().
...
There's no guarantee that rpmalloc will be initialized when the thread
calls SetThreadName, due to thread_local storage initialization rules.
2018-03-30 14:39:25 +02:00
Bartosz Taudul
ab1f93194e
No thread names on emscripten.
2017-11-29 11:11:16 +01:00
Bartosz Taudul
f71af873c0
Proper function name.
2017-11-03 11:13:02 +01:00
Bartosz Taudul
7ecc6b54d4
Proper pthread_threadid_np call.
2017-11-03 11:12:17 +01:00
Bartosz Taudul
c7cb89307f
Use proper __APPLE__ macro.
2017-11-03 11:09:31 +01:00
Bartosz Taudul
1d9542ea25
Fix thread ids on osx, iphone.
2017-11-03 10:49:49 +01:00
Bartosz Taudul
3051b8d27c
Don't use rpmalloc directly.
2017-11-02 12:58:38 +01:00
Bartosz Taudul
391571a2da
Fix android with tracy disabled.
2017-10-31 11:36:43 +01:00
Bartosz Taudul
aa12a3bf94
Missing include.
2017-10-30 21:51:24 +01:00
Bartosz Taudul
cf3d8eb810
Manual collection of thread names on android.
2017-10-30 20:45:00 +01:00
Bartosz Taudul
5cf962e03d
Android has pthread_setname_np, but not getname...
2017-10-30 13:48:52 +01:00
Bartosz Taudul
d21040e3d8
pthread_{get,set}name_np is not standard.
2017-10-28 12:16:52 +02:00
Bartosz Taudul
1788408ceb
Allow setting thread name using thread handle.
2017-10-16 21:17:58 +02:00
Bartosz Taudul
f156cd922b
OpenThread may fail.
2017-10-15 13:26:05 +02:00
Bartosz Taudul
75457c1465
Remove +x flag from files.
2017-10-10 21:56:15 +02:00
Bartosz Taudul
809d98162b
Do the same trick as concurrentqueue.h for GetCurrentThreadId().
2017-09-26 00:46:46 +02:00