Crates.io | share_memory |
lib.rs | share_memory |
version | 0.1.1 |
source | src |
created_at | 2018-04-20 06:18:22.616631 |
updated_at | 2018-04-23 06:43:15.71527 |
description | This is share memory impl multi process for rust |
homepage | |
repository | https://github.com/tickbh/ShareMemory |
max_upload_size | |
id | 61521 |
size | 15,788 |
A Rust library for socket.
Add this to your Cargo.toml
:
[dependencies]
share_memory = "0.1"
and this to your crate root:
extern crate share_memory;
How to use
extern crate share_memory;
extern crate time;
use share_memory::ShareMemory;
type ARRAY = [i32; 80];
fn main () {
let size : usize = std::mem::size_of::<ARRAY>();
let mut share = ShareMemory::new_create(String::from("."), size * 2, None).unwrap();
if let Some(addr) = share.first_memory().ok().unwrap() {
let mut data: &mut ARRAY = unsafe {
std::mem::transmute(addr)
};
data[0] += 1;
println!("{:?}", data[0]);
}
loop {
}
}
now it will print 1, if you start multi process, if you change the data
// unix为name和path_name得到共享内存的索引
// windows由name得到共享内存的索引,将忽略path_name
pub fn new_create(name: String, size: usize, path_name: Option<String>) -> Result<ShareMemory>;
Licensed under either of
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.