summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--binaryninjaapi.h1
-rw-r--r--binaryninjacore.h1
-rw-r--r--mainthread.cpp6
-rw-r--r--python/mainthread.py4
4 files changed, 12 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index 212c035f..dc3ca449 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -625,6 +625,7 @@ namespace BinaryNinja
void RegisterMainThread(MainThreadActionHandler* handler);
Ref<MainThreadAction> ExecuteOnMainThread(const std::function<void()>& action);
void ExecuteOnMainThreadAndWait(const std::function<void()>& action);
+ bool IsMainThread();
void WorkerEnqueue(const std::function<void()>& action);
void WorkerEnqueue(RefCountObject* owner, const std::function<void()>& action);
diff --git a/binaryninjacore.h b/binaryninjacore.h
index d4a24f15..86035355 100644
--- a/binaryninjacore.h
+++ b/binaryninjacore.h
@@ -3603,6 +3603,7 @@ extern "C"
BINARYNINJACOREAPI void BNWaitForMainThreadAction(BNMainThreadAction* action);
BINARYNINJACOREAPI BNMainThreadAction* BNExecuteOnMainThread(void* ctxt, void (*func)(void* ctxt));
BINARYNINJACOREAPI void BNExecuteOnMainThreadAndWait(void* ctxt, void (*func)(void* ctxt));
+ BINARYNINJACOREAPI bool BNIsMainThread(void);
// Worker thread queue management
BINARYNINJACOREAPI void BNWorkerEnqueue(void* ctxt, void (*action)(void* ctxt));
diff --git a/mainthread.cpp b/mainthread.cpp
index 8e9d9d50..59d67c12 100644
--- a/mainthread.cpp
+++ b/mainthread.cpp
@@ -80,3 +80,9 @@ void BinaryNinja::ExecuteOnMainThreadAndWait(const function<void()>& action)
ctxt.action = action;
BNExecuteOnMainThreadAndWait(&ctxt, ExecuteActionLocal);
}
+
+
+bool BinaryNinja::IsMainThread()
+{
+ return BNIsMainThread();
+}
diff --git a/python/mainthread.py b/python/mainthread.py
index 9a9a2864..6993194e 100644
--- a/python/mainthread.py
+++ b/python/mainthread.py
@@ -58,3 +58,7 @@ def get_worker_thread_count():
def set_worker_thread_count(count):
core.BNSetWorkerThreadCount(count)
+
+
+def is_main_thread():
+ return core.BNIsMainThread()