Skip to content
This repository has been archived by the owner on Nov 1, 2024. It is now read-only.

Stuck after assertion #110

Open
irov opened this issue Nov 10, 2021 · 2 comments
Open

Stuck after assertion #110

irov opened this issue Nov 10, 2021 · 2 comments

Comments

@irov
Copy link

irov commented Nov 10, 2021

If my application call ::abort() i get stuck on wait thread finished.

 	[External Code]	
>	GameAnalyticsPlugin.dll!gameanalytics::threading::GAThreading::State::~State() Line 109	C++
 	[External Code]	
 	GameAnalyticsPlugin.dll!_execute_onexit_table::__l2::<lambda>() Line 206	C++
 	GameAnalyticsPlugin.dll!__crt_seh_guarded_call<int>::operator()<void <lambda>(void),int <lambda>(void) &,void <lambda>(void)>(__acrt_lock_and_call::__l2::void <lambda>(void) && setup, _execute_onexit_table::__l2::int <lambda>(void) & action, __acrt_lock_and_call::__l2::void <lambda>(void) && cleanup) Line 204	C++
 	GameAnalyticsPlugin.dll!__acrt_lock_and_call<int <lambda>(void)>(const __acrt_lock_id lock_id, _execute_onexit_table::__l2::int <lambda>(void) && action) Line 980	C++
 	GameAnalyticsPlugin.dll!_execute_onexit_table(_onexit_table_t * table) Line 160	C++
 	GameAnalyticsPlugin.dll!common_exit::__l2::<lambda>() Line 226	C++
 	GameAnalyticsPlugin.dll!__crt_seh_guarded_call<void>::operator()<void <lambda>(void),void <lambda>(void) &,void <lambda>(void)>(__acrt_lock_and_call::__l2::void <lambda>(void) && setup, common_exit::__l2::void <lambda>(void) & action, __acrt_lock_and_call::__l2::void <lambda>(void) && cleanup) Line 225	C++
 	GameAnalyticsPlugin.dll!__acrt_lock_and_call<void <lambda>(void)>(const __acrt_lock_id lock_id, common_exit::__l2::void <lambda>(void) && action) Line 980	C++
 	GameAnalyticsPlugin.dll!common_exit(const int return_code, const _crt_exit_cleanup_mode cleanup_mode, const _crt_exit_return_mode return_mode) Line 201	C++
 	GameAnalyticsPlugin.dll!_cexit() Line 313	C++
 	[External Code]	
 	Mengine.dll!exit_or_terminate_process(const unsigned int return_code) Line 144	C++
 	Mengine.dll!common_exit(const int return_code, const _crt_exit_cleanup_mode cleanup_mode, const _crt_exit_return_mode return_mode) Line 280	C++
 	Mengine.dll!_exit(int return_code) Line 298	C++
 	Mengine.dll!abort() Line 90	C++

Setup code

        gameanalytics::GameAnalytics::configureCustomLogHandler( &Detail::logHandler );
        gameanalytics::GameAnalytics::configureWritablePath( analyticsPath );
        gameanalytics::GameAnalytics::setEnabledInfoLog( GameAnalytics_InfoLog );
        gameanalytics::GameAnalytics::setEnabledVerboseLog( GameAnalytics_VerboseLog );
        gameanalytics::GameAnalytics::configureSdkGameEngineVersion( EngineGITSHA1 );
        gameanalytics::GameAnalytics::configureGameEngineVersion( buildVersion );
        gameanalytics::GameAnalytics::configureUserId( userId );
        gameanalytics::GameAnalytics::setEnabledManualSessionHandling( true );

Thanks

@the1schwartz
Copy link
Contributor

Did you remember to call onQuit() function or else the GA thread will not end I think?

@irov
Copy link
Author

irov commented Nov 15, 2021

The fact of the matter is that after the call ::abort(), I can no longer manage the code. This is the essence of the bug.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants