about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/lib.rs10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/lib.rs b/src/lib.rs
index 75846a6dee91..6cb595a4d68a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -181,31 +181,35 @@ impl Queue {
     }
 
     /// Delete a message queue from the system. This method will make the queue unavailable for
-    /// other processes, too!
+    /// other processes after their current queue descriptors have been closed.
     pub fn delete(self) -> Result<(), Error> {
         mqueue::mq_unlink(&self.name.0)?;
         drop(self);
         Ok(())
     }
 
+    /// Send a message to the message queue.
+    /// If the queue is full this call will block until a message has been consumed.
     pub fn send(&self, msg: &Message) -> Result<(), Error> {
         if msg.data.len() > self.max_size as usize {
             return Err(Error::MessageSizeExceeded());
         }
 
         mqueue::mq_send(
-            self.queue_descriptor.clone(),
+            self.queue_descriptor,
             msg.data.as_ref(),
             msg.priority,
         ).map_err(|e| e.into())
     }
 
+    /// Receive a message from the message queue.
+    /// If the queue is empty this call will block until a message arrives.
     pub fn receive(&self) -> Result<Message, Error> {
         let mut data: Vec<u8> = vec![0; self.max_size as usize];
         let mut priority: u32 = 0;
 
         let msg_size = mqueue::mq_receive(
-            self.queue_descriptor.clone(),
+            self.queue_descriptor,
             data.as_mut(),
             &mut priority,
         )?;