Skip to content
Snippets Groups Projects
db.c 27.6 KiB
Newer Older
  • Learn to ignore specific revisions
  • 	ast_mutex_lock(&dblock);
    
    	doexit = 1;
    
    	db_sync();
    
    	ast_mutex_unlock(&dblock);
    
    
    	pthread_join(syncthread, NULL);
    	ast_mutex_lock(&dblock);
    
    	clean_statements();
    	if (sqlite3_close(astdb) == SQLITE_OK) {
    		astdb = NULL;
    	}
    
    	ast_mutex_unlock(&dblock);
    }
    
    
    Mark Spencer's avatar
    Mark Spencer committed
    int astdb_init(void)
    {
    
    	if (db_init()) {
    		return -1;
    	}
    
    
    	ast_cond_init(&dbcond, NULL);
    
    	if (ast_pthread_create_background(&syncthread, NULL, db_sync_thread, NULL)) {
    
    	ast_register_atexit(astdb_atexit);
    
    	ast_cli_register_multiple(cli_database, ARRAY_LEN(cli_database));
    
    	ast_manager_register_xml_core("DBGet", EVENT_FLAG_SYSTEM | EVENT_FLAG_REPORTING, manager_dbget);
    	ast_manager_register_xml_core("DBPut", EVENT_FLAG_SYSTEM, manager_dbput);
    	ast_manager_register_xml_core("DBDel", EVENT_FLAG_SYSTEM, manager_dbdel);
    	ast_manager_register_xml_core("DBDelTree", EVENT_FLAG_SYSTEM, manager_dbdeltree);
    
    Mark Spencer's avatar
    Mark Spencer committed
    	return 0;
    }