share_memory

Crates.ioshare_memory
lib.rsshare_memory
version0.1.1
sourcesrc
created_at2018-04-20 06:18:22.616631
updated_at2018-04-23 06:43:15.71527
descriptionThis is share memory impl multi process for rust
homepage
repositoryhttps://github.com/tickbh/ShareMemory
max_upload_size
id61521
size15,788
问蒙框架服务 (tickbh)

documentation

https://docs.rs/share_memory

README

this is share memory impl multi process for rust

Build Status Crates.io

A Rust library for socket.

Usage

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>;

License

Licensed under either of

at your option.

Contribution

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.

Commit count: 9

cargo fmt