@ -31,12 +31,22 @@
# ifndef SERVER_WRAP_MT_COMMON_H
# define SERVER_WRAP_MT_COMMON_H
# ifdef DEBIG_ENABLED
# define MAIN_THREAD_SYNC_CHECK \
if ( unlikely ( Thread : : is_main_thread ( ) & & Engine : : get_singleton ( ) - > notify_frame_server_synced ( ) ) ) { \
MAIN_THREAD_SYNC_WARN \
}
# else
# define MAIN_THREAD_SYNC_CHECK
# endif
# define FUNC0R(m_r, m_type) \
virtual m_r m_type ( ) override { \
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -68,6 +78,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -102,6 +113,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( ) ; \
@ -113,6 +125,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( ) ; \
@ -128,6 +141,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -141,6 +155,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -154,6 +169,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 ) ; \
@ -165,6 +181,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 ) ; \
@ -199,6 +216,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -212,6 +230,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -225,6 +244,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 ) ; \
@ -236,6 +256,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 ) ; \
@ -270,6 +291,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -283,6 +305,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -296,6 +319,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 ) ; \
@ -307,6 +331,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 ) ; \
@ -341,6 +366,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -354,6 +380,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -367,6 +394,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 ) ; \
@ -378,6 +406,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 ) ; \
@ -412,6 +441,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -425,6 +455,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -438,6 +469,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 , p5 ) ; \
@ -449,6 +481,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 , p5 ) ; \
@ -483,6 +516,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -496,6 +530,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -509,6 +544,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 , p5 , p6 ) ; \
@ -520,6 +556,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 , p5 , p6 ) ; \
@ -554,6 +591,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , p7 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -567,6 +605,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , p7 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -580,6 +619,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , p7 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 , p5 , p6 , p7 ) ; \
@ -591,6 +631,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , p7 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 , p5 , p6 , p7 ) ; \
@ -625,6 +666,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -638,6 +680,7 @@
m_r ret ; \
command_queue . push_and_ret ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , & ret ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
return ret ; \
} else { \
command_queue . flush_if_pending ( ) ; \
@ -651,6 +694,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 ) ; \
@ -662,6 +706,7 @@
if ( Thread : : get_caller_id ( ) ! = server_thread ) { \
command_queue . push_and_sync ( server_name , & ServerName : : m_type , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 ) ; \
SYNC_DEBUG \
MAIN_THREAD_SYNC_CHECK \
} else { \
command_queue . flush_if_pending ( ) ; \
server_name - > m_type ( p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 ) ; \