RBOOL rpHostCommonPlatformLib_stop ( ) { if( 0 == rInterlocked_decrement32( &g_hcpContext.isRunning ) ) { stopBeacons(); stopAllModules(); rpal_memory_free( g_hcpContext.primaryUrl ); rpal_memory_free( g_hcpContext.secondaryUrl ); if( NULL != g_hcpContext.enrollmentToken && 0 != g_hcpContext.enrollmentTokenSize ) { rpal_memory_free( g_hcpContext.enrollmentToken ); } freeKeys(); #ifdef RPAL_PLATFORM_WINDOWS SetConsoleCtrlHandler( (PHANDLER_ROUTINE)ctrlHandler, FALSE ); #endif rMutex_free( g_hcpContext.cloudConnectionMutex ); rEvent_free( g_hcpContext.isCloudOnline ); g_hcpContext.cloudConnectionMutex = NULL; g_hcpContext.isCloudOnline = NULL; rpal_Context_cleanup(); rpal_Context_deinitialize(); // If the default crashContext is still present, remove it since // we are shutting down properly. If it's non-default leave it since // somehow we may have had a higher order crash we want to keep // track of but we are still leaving through our normal code path. if( 1 == getCrashContextSize() ) { rpal_debug_info( "clearing default crash context" ); cleanCrashContext(); } } else { rInterlocked_increment32( &g_hcpContext.isRunning ); } rpal_debug_info( "finished stopping hcp" ); return TRUE; }
RU32 RPAL_EXPORT RPAL_THREAD_FUNC rpHcpI_entry ( rpHCPModuleContext* moduleContext ) { RU32 ret = (RU32)(-1); rThread hMain = 0; if( NULL != moduleContext ) { g_Module_Context = moduleContext; if( rpal_initialize( moduleContext->rpalContext, g_current_Module_id ) ) { ret = (RU32)(-2); if( 0 != ( hMain = rpal_thread_new( RpHcpI_mainThread, g_Module_Context->isTimeToStop ) ) ) { rpal_debug_info( "main module worker started" ); ret = 0; while( TRUE ) { if( rpal_thread_wait( hMain, ( 1 * 1000 ) ) ) { break; } } rpal_debug_info( "main module worker finished" ); rpal_thread_free( hMain ); } else { rpal_debug_error( "failed spawning module main worker" ); } rpal_Context_cleanup(); rpal_Context_deinitialize(); } else { rpal_debug_error( "failed IFace init" ); } } return ret; }
int main ( int argc, char* argv[] ) { int ret = 1; RU32 i = 0; CU_pSuite suite = NULL; UNREFERENCED_PARAMETER( argc ); UNREFERENCED_PARAMETER( argv ); rpal_initialize( NULL, 1 ); for( i = 0; i < 1000000; i++ ) { CU_initialize_registry(); if( NULL != ( suite = CU_add_suite( "obsLib", NULL, NULL ) ) ) { if( NULL != CU_add_test( suite, "createAndDestroy", test_CreateAndDestroy ) && NULL != CU_add_test( suite, "addPattern", test_addPattern ) && NULL != CU_add_test( suite, "singlePattern", test_singlePattern ) && NULL != CU_add_test( suite, "multiPattern", test_multiPattern ) ) { ret = 0; } } CU_basic_run_tests(); CU_cleanup_registry(); } rpal_Context_cleanup(); if( 0 != rpal_memory_totalUsed() ) { ret = -1; } rpal_Context_deinitialize(); return ret; }
RPRIVATE RU32 RPAL_THREAD_FUNC thread_quitAndCleanup ( RPVOID context ) { UNREFERENCED_PARAMETER( context ); if( 0 == rInterlocked_decrement32( &g_hcpContext.isRunning ) ) { rpal_thread_sleep( MSEC_FROM_SEC( 1 ) ); stopAllModules(); stopBeacons(); if( NULL != g_hcpContext.enrollmentToken && 0 != g_hcpContext.enrollmentTokenSize ) { rpal_memory_free( g_hcpContext.enrollmentToken ); } // If the default crashContext is still present, remove it since // we are shutting down properly. If it's non-default leave it since // somehow we may have had a higher order crash we want to keep // track of but we are still leaving through our normal code path. if( 1 == getCrashContextSize() ) { cleanCrashContext(); } rpal_Context_cleanup(); rpal_Context_deinitialize(); } else { rInterlocked_increment32( &g_hcpContext.isRunning ); } return 0; }
int main ( int argc, char* argv[] ) { int ret = 1; CU_pSuite suite = NULL; #ifdef RPAL_PLATFORM_WINDOWS RCHAR strSeDebug[] = "SeDebugPrivilege"; Get_Privilege( strSeDebug ); #endif UNREFERENCED_PARAMETER( argc ); UNREFERENCED_PARAMETER( argv ); rpal_initialize( NULL, 1 ); CU_initialize_registry(); if( NULL != ( suite = CU_add_suite( "raptd", NULL, NULL ) ) ) { if( NULL == CU_add_test( suite, "procEntries", test_procEntries ) || NULL == CU_add_test( suite, "processInfo", test_processInfo ) || NULL == CU_add_test( suite, "modules", test_modules ) || NULL == CU_add_test( suite, "memmap", test_memmap ) || NULL == CU_add_test( suite, "handles", test_handles ) || NULL == CU_add_test( suite, "services", test_servicesList ) || NULL == CU_add_test( suite, "memoryLeaks", test_memoryLeaks ) ) { ret = 0; } } CU_basic_run_tests(); CU_cleanup_registry(); rpal_Context_deinitialize(); return ret; }