Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions src/mqueue.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@
//!
//! # Example
//!
// no_run because a kernel module may be required.
//! ```no_run
//! ```
//! # use std::ffi::CString;
//! # use nix::mqueue::*;
//! use nix::sys::stat::Mode;
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason why no_run is required? This is only executed by cargo test and if this fails due to missing kernel modules, so would the mqueue tests.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I think it would be ok to remove the no_run. Would you please do that?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. I have amended the commit to remove no_run.

//!
//! const MSG_SIZE: mq_attr_member_t = 32;
//! let mq_name= "/a_nix_test_queue";
//! let attr = MqAttr::new(0, 10, MSG_SIZE, 0);
//! let mq_name= "/a_nix_doc_test_queue";
//!
//! let oflag0 = MQ_OFlag::O_CREAT | MQ_OFlag::O_WRONLY;
//! let mode = Mode::S_IWUSR | Mode::S_IRUSR | Mode::S_IRGRP | Mode::S_IROTH;
//! let mqd0 = mq_open(mq_name, oflag0, mode, None).unwrap();
//! let mqd0 = mq_open(mq_name, oflag0, mode, Some(&attr)).unwrap();
//! let msg_to_send = b"msg_1";
//! mq_send(&mqd0, msg_to_send, 1).unwrap();
//!
//! let oflag1 = MQ_OFlag::O_CREAT | MQ_OFlag::O_RDONLY;
//! let mqd1 = mq_open(mq_name, oflag1, mode, None).unwrap();
//! let mut buf = [0u8; 32];
//! let mqd1 = mq_open(mq_name, oflag1, mode, Some(&attr)).unwrap();
//! let mut buf = [0u8; MSG_SIZE as usize];
//! let mut prio = 0u32;
//! let len = mq_receive(&mqd1, &mut buf, &mut prio).unwrap();
//! assert_eq!(prio, 1);
Expand Down Expand Up @@ -100,7 +100,9 @@ impl MqAttr {
///
/// - `mq_flags`: Either `0` or `O_NONBLOCK`.
/// - `mq_maxmsg`: Maximum number of messages on the queue.
/// The maximum value allowed by the system can be obtained from `/proc/sys/fs/mqueue/msg_max`.
/// - `mq_msgsize`: Maximum message size in bytes.
/// The maximum value allowed by the system can be obtained from `/proc/sys/fs/mqueue/msgsize_max`.
Comment on lines +103 to +105
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These two comments are Linux-specific. But the API is cross-platform. So it's not really appropriate to put these here.

/// - `mq_curmsgs`: Number of messages currently in the queue.
pub fn new(
mq_flags: mq_attr_member_t,
Expand Down