diff options
author | sumit0190 <sumi29@gmail.com> | 2018-09-20 21:36:34 -0400 |
---|---|---|
committer | sumit0190 <sumi29@gmail.com> | 2018-09-20 21:36:34 -0400 |
commit | 3e8f7fcefdfb1b61b547db1dea7273b44e36203c (patch) | |
tree | 40d57c6c9afc9c549112432c2edc9d344f3ecf9a /components/profile_traits/ipc.rs | |
parent | fc0c191246e6c49947dc5d5dc0d2275709fe047e (diff) | |
download | servo-3e8f7fcefdfb1b61b547db1dea7273b44e36203c.tar.gz servo-3e8f7fcefdfb1b61b547db1dea7273b44e36203c.zip |
Add support for IpcBytesReceiver in profile_traits::ipc - #21704
Diffstat (limited to 'components/profile_traits/ipc.rs')
-rw-r--r-- | components/profile_traits/ipc.rs | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/components/profile_traits/ipc.rs b/components/profile_traits/ipc.rs index cd4553ea8bc..7436ef5d5f1 100644 --- a/components/profile_traits/ipc.rs +++ b/components/profile_traits/ipc.rs @@ -53,3 +53,33 @@ where }; Ok((ipc_sender, profiled_ipc_receiver)) } + +pub struct IpcBytesReceiver +{ + ipc_bytes_receiver: ipc::IpcBytesReceiver, + time_profile_chan: ProfilerChan, +} + +impl IpcBytesReceiver +{ + pub fn recv(&self) -> Result<Vec<u8>, bincode::Error> { + time::profile( + ProfilerCategory::IpcBytesReceiver, + None, + self.time_profile_chan.clone(), + move || self.ipc_bytes_receiver.recv(), + ) + } +} + +pub fn bytes_channel( + time_profile_chan: ProfilerChan, +) -> Result<(ipc::IpcBytesSender, IpcBytesReceiver), Error> +{ + let (ipc_bytes_sender, ipc_bytes_receiver) = ipc::bytes_channel()?; + let profiled_ipc_bytes_receiver = IpcBytesReceiver { + ipc_bytes_receiver, + time_profile_chan, + }; + Ok((ipc_bytes_sender, profiled_ipc_bytes_receiver)) +} |