20#ifdef SCRIPTAPI_LOCK_DEBUG
25 LockChecker(
int *recursion_counter, std::thread::id *owning_thread)
27 m_lock_recursion_counter = recursion_counter;
28 m_owning_thread = owning_thread;
29 m_original_level = *recursion_counter;
31 if (*m_lock_recursion_counter > 0) {
32 assert(*m_owning_thread == std::this_thread::get_id());
34 *m_owning_thread = std::this_thread::get_id();
37 (*m_lock_recursion_counter)++;
42 assert(*m_owning_thread == std::this_thread::get_id());
43 assert(*m_lock_recursion_counter > 0);
45 (*m_lock_recursion_counter)--;
47 assert(*m_lock_recursion_counter == m_original_level);
51 int *m_lock_recursion_counter;
53 std::thread::id *m_owning_thread;
56#define SCRIPTAPI_LOCK_CHECK \
57 LockChecker scriptlock_checker( \
58 &this->m_lock_recursion_count, \
59 &this->m_owning_thread)
62 #define SCRIPTAPI_LOCK_CHECK while(0)
65#define SCRIPTAPI_PRECHECKHEADER \
66 RecursiveMutexAutoLock scriptlock(this->m_luastackmutex); \
67 SCRIPTAPI_LOCK_CHECK; \
69 lua_State *L = getStack(); \
70 assert(lua_checkstack(L, 20)); \
71 StackUnroller stack_unroller(L);