Skip to content

Commit

Permalink
Implemented ZSock::signal
Browse files Browse the repository at this point in the history
  • Loading branch information
petehayes102 committed Jun 16, 2016
1 parent 4e74f15 commit 60d9a00
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions src/zsock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -336,6 +336,14 @@ impl ZSock {
// pub fn zsock_set_unbounded(_self: *mut ::std::os::raw::c_void);
// pub fn zsock_signal(_self: *mut ::std::os::raw::c_void, status: byte)
// -> ::std::os::raw::c_int;
pub fn signal(&self, status: u8) -> Result<()> {
let rc = unsafe { czmq_sys::zsock_signal(self.zsock as *mut c_void, status) };
if rc == -1 {
Err(Error::new(ErrorKind::NonZero, ZSockError::CmdFailed))
} else {
Ok(())
}
}

pub fn wait(&self) -> Result<()> {
let rc = unsafe { czmq_sys::zsock_wait(self.zsock as *mut c_void) };
Expand Down Expand Up @@ -1028,14 +1036,13 @@ mod tests {
}

#[test]
fn test_wait() {
fn test_signal_wait() {
zsys_init();

let server = ZSock::new_rep("inproc://zsock_wait").unwrap();
let client = ZSock::new_req("inproc://zsock_wait").unwrap();
let server = ZSock::new_pull("inproc://zsock_wait").unwrap();
let client = ZSock::new_push("inproc://zsock_wait").unwrap();

let msg = ZMsg::new_signal(1).unwrap();
msg.send(&client).unwrap();
client.signal(0).unwrap();
assert!(server.wait().is_ok());
}

Expand Down

0 comments on commit 60d9a00

Please sign in to comment.