use std::time::Duration;
use aok::{OK, Void};
use fred::interfaces::HashesInterface;
use kvid::{KVID_KEY, KvId};
use log::info;
use xkv::R;
#[static_init::constructor(0)]
extern "C" fn _log_init() {
log_init::init();
}
static KVID_TEST: KvId = KvId::const_new("test");
#[tokio::test]
async fn test() -> Void {
xboot::init().await?;
let t1 = tokio::spawn(async {
for _ in 0..50 {
let id = KVID_TEST.next().await?;
info!("t1: {id}");
tokio::time::sleep(Duration::from_millis(10)).await;
}
Ok::<_, kvid::Error>(())
});
let t2 = tokio::spawn(async {
for _ in 0..50 {
let id = KVID_TEST.next().await?;
info!("t2: {id}");
tokio::time::sleep(Duration::from_millis(10)).await;
}
Ok::<_, kvid::Error>(())
});
t1.await??;
t2.await??;
R.hdel::<(), _, _>(KVID_KEY, "test").await?;
OK
}