mirror of
https://github.com/yse/easy_profiler.git
synced 2024-12-27 00:31:02 +08:00
Static thread local
This commit is contained in:
parent
99b761375b
commit
53289cec81
@ -63,7 +63,7 @@ inline profiler::thread_id_t getCurrentThreadId()
|
||||
#elif defined(__APPLE__)
|
||||
# if (defined(__MAC_OS_X_VERSION_MIN_REQUIRED) && __MAC_OS_X_VERSION_MIN_REQUIRED >= __MAC_10_6) || \
|
||||
(defined(__IPHONE_OS_VERSION_MIN_REQUIRED) && __IPHONE_OS_VERSION_MIN_REQUIRED >= __IPHONE_8_0)
|
||||
EASY_THREAD_LOCAL static uint64_t _id = 0;
|
||||
static EASY_THREAD_LOCAL uint64_t _id = 0;
|
||||
if (!_id)
|
||||
pthread_threadid_np(NULL, &_id);
|
||||
return (profiler::thread_id_t)_id;
|
||||
|
@ -252,7 +252,7 @@ and creates "ThreadFinished" profiler event.
|
||||
\ingroup profiler
|
||||
*/
|
||||
# define EASY_THREAD_SCOPE(name)\
|
||||
EASY_THREAD_LOCAL static const char* EASY_TOKEN_CONCATENATE(unique_profiler_thread_name, __LINE__) = 0;\
|
||||
static EASY_THREAD_LOCAL const char* EASY_TOKEN_CONCATENATE(unique_profiler_thread_name, __LINE__) = 0;\
|
||||
::profiler::ThreadGuard EASY_TOKEN_CONCATENATE(unique_profiler_thread_guard, __LINE__);\
|
||||
if (!EASY_TOKEN_CONCATENATE(unique_profiler_thread_name, __LINE__))\
|
||||
EASY_TOKEN_CONCATENATE(unique_profiler_thread_name, __LINE__) = ::profiler::registerThreadScoped(name,\
|
||||
|
@ -156,15 +156,15 @@ EASY_CONSTEXPR uint8_t FORCE_ON_FLAG = profiler::FORCE_ON & ~profiler::ON;
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
|
||||
EASY_THREAD_LOCAL static ::ThreadStorage* THIS_THREAD = nullptr;
|
||||
EASY_THREAD_LOCAL static bool THIS_THREAD_IS_MAIN = false;
|
||||
static EASY_THREAD_LOCAL ::ThreadStorage* THIS_THREAD = nullptr;
|
||||
static EASY_THREAD_LOCAL bool THIS_THREAD_IS_MAIN = false;
|
||||
|
||||
EASY_THREAD_LOCAL static profiler::timestamp_t THIS_THREAD_FRAME_T_MAX = 0ULL;
|
||||
EASY_THREAD_LOCAL static profiler::timestamp_t THIS_THREAD_FRAME_T_CUR = 0ULL;
|
||||
EASY_THREAD_LOCAL static profiler::timestamp_t THIS_THREAD_FRAME_T_ACC = 0ULL;
|
||||
EASY_THREAD_LOCAL static uint32_t THIS_THREAD_N_FRAMES = 0;
|
||||
EASY_THREAD_LOCAL static bool THIS_THREAD_FRAME_T_RESET_MAX = false;
|
||||
EASY_THREAD_LOCAL static bool THIS_THREAD_FRAME_T_RESET_AVG = false;
|
||||
static EASY_THREAD_LOCAL profiler::timestamp_t THIS_THREAD_FRAME_T_MAX = 0ULL;
|
||||
static EASY_THREAD_LOCAL profiler::timestamp_t THIS_THREAD_FRAME_T_CUR = 0ULL;
|
||||
static EASY_THREAD_LOCAL profiler::timestamp_t THIS_THREAD_FRAME_T_ACC = 0ULL;
|
||||
static EASY_THREAD_LOCAL uint32_t THIS_THREAD_N_FRAMES = 0;
|
||||
static EASY_THREAD_LOCAL bool THIS_THREAD_FRAME_T_RESET_MAX = false;
|
||||
static EASY_THREAD_LOCAL bool THIS_THREAD_FRAME_T_RESET_AVG = false;
|
||||
|
||||
#ifdef EASY_CXX11_TLS_AVAILABLE
|
||||
thread_local static profiler::ThreadGuard THIS_THREAD_GUARD; // thread guard for monitoring thread life time
|
||||
|
@ -139,7 +139,7 @@ public:
|
||||
bool mouseDoubleClick(const QPointF& scenePos);
|
||||
void mouseLeave();
|
||||
|
||||
bool contains(const QPointF& scenePos) const;
|
||||
bool contains(const QPointF& scenePos) const override;
|
||||
|
||||
signals:
|
||||
|
||||
|
@ -433,6 +433,8 @@ void DescriptorsTreeWidget::build()
|
||||
case ::profiler::BlockType::Value:
|
||||
item->setType(DescriptorsTreeItem::Type::Value);
|
||||
break;
|
||||
|
||||
case ::profiler::BlockType::TypesCount: break;
|
||||
}
|
||||
|
||||
item->setFont(DESC_COL_STATUS, f);
|
||||
|
@ -68,11 +68,17 @@
|
||||
#endif
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
#define EASY_INIT_ATOMIC(v) v
|
||||
|
||||
#if defined (_WIN32)
|
||||
#undef EASY_INIT_ATOMIC
|
||||
#define EASY_INIT_ATOMIC(v) {v}
|
||||
#endif
|
||||
|
||||
TreeWidgetLoader::TreeWidgetLoader()
|
||||
: m_bDone(false)
|
||||
, m_bInterrupt(false)
|
||||
, m_progress(0)
|
||||
: m_bDone(EASY_INIT_ATOMIC(false))
|
||||
, m_bInterrupt(EASY_INIT_ATOMIC(false))
|
||||
, m_progress(EASY_INIT_ATOMIC(0))
|
||||
, m_mode(TreeMode::Full)
|
||||
{
|
||||
}
|
||||
|
@ -269,7 +269,8 @@ int main(int argc, char* argv[])
|
||||
cv.notify_all();
|
||||
|
||||
#ifndef SAMPLE_NETWORK_TEST
|
||||
std::atomic_bool stop(false);
|
||||
std::atomic_bool stop;
|
||||
stop = false;
|
||||
auto frame_time_printer_thread = std::thread([&stop]()
|
||||
{
|
||||
while (!stop.load(std::memory_order_acquire))
|
||||
|
Loading…
x
Reference in New Issue
Block a user