2个不稳定版本
0.2.0 | 2024年3月18日 |
---|---|
0.1.0 | 2022年2月17日 |
#545 in Unix API
每月26次 下载
用于 2 crates
6KB
55 行
r2d2-alpm
用于创建处理多个连接到Arch Linux Alpm
数据库的 r2d2::Pool
的类型和实用工具。
用法
创建一个在(例如)一些Rayon线程内委托 Alpm
连接的 Pool
use r2d2::Pool;
use r2d2_alpm::AlpmManager;
use rayon::prelude::*;
let mngr = AlpmManager::from_file("/etc/pacman.conf").unwrap();
let pool = Pool::builder().max_size(4).build(mngr).unwrap();
(0..10).into_par_iter().for_each(|n| {
// `Pool::get` will wait for a configurable length
// of time for a free connection before giving up.
if let Ok(alpm) = pool.get() {
// Use the ALPM handle freely here.
}
});
类似于 std::sync::Arc
,Pool
便宜到可以 Clone
,并且可以自由传递到子线程。
许可证:MIT
lib.rs
:
用于创建处理多个连接到Arch Linux Alpm
数据库的 r2d2::Pool
的类型和实用工具。
用法
创建一个在(例如)一些Rayon线程内委托 Alpm
连接的 Pool
use r2d2::Pool;
use r2d2_alpm::AlpmManager;
use rayon::prelude::*;
let mngr = AlpmManager::from_file("/etc/pacman.conf").unwrap();
let pool = Pool::builder().max_size(4).build(mngr).unwrap();
(0..10).into_par_iter().for_each(|n| {
// `Pool::get` will wait for a configurable length
// of time for a free connection before giving up.
if let Ok(alpm) = pool.get() {
// Use the ALPM handle freely here.
}
});
类似于 std::sync::Arc
,Pool
便宜到可以 Clone
,并且可以自由传递到子线程。
依赖关系
~1.2–6MB
~32K SLoC