# async_init init object asynchronously without Arc ```rust #[async_init] pub async fn get_db_pool() -> Result { println!("thread id is {:?}, create mysql pool", thread::current().id()); let db_url = env::var("DATABASE_URL").expect("`DATABASE_URL` must be set to run this app"); let pool:MySqlPool = Pool::new(&db_url).await?; Ok(pool) } ```