diff options
Diffstat (limited to 'components/canvas_traits')
-rw-r--r-- | components/canvas_traits/webgl_channel/mod.rs | 7 | ||||
-rw-r--r-- | components/canvas_traits/webgl_channel/mpsc.rs | 4 |
2 files changed, 11 insertions, 0 deletions
diff --git a/components/canvas_traits/webgl_channel/mod.rs b/components/canvas_traits/webgl_channel/mod.rs index c9b2137a287..45c76d54605 100644 --- a/components/canvas_traits/webgl_channel/mod.rs +++ b/components/canvas_traits/webgl_channel/mod.rs @@ -71,6 +71,13 @@ where WebGLReceiver::Mpsc(ref receiver) => receiver.recv().map_err(|_| ()), } } + + pub fn try_recv(&self) -> Result<T, ()> { + match *self { + WebGLReceiver::Ipc(ref receiver) => receiver.try_recv().map_err(|_| ()), + WebGLReceiver::Mpsc(ref receiver) => receiver.try_recv().map_err(|_| ()), + } + } } pub fn webgl_channel<T>() -> Result<(WebGLSender<T>, WebGLReceiver<T>), ()> diff --git a/components/canvas_traits/webgl_channel/mpsc.rs b/components/canvas_traits/webgl_channel/mpsc.rs index 0bf845308d3..0dd063967ea 100644 --- a/components/canvas_traits/webgl_channel/mpsc.rs +++ b/components/canvas_traits/webgl_channel/mpsc.rs @@ -47,6 +47,10 @@ impl<T> WebGLReceiver<T> { pub fn recv(&self) -> Result<T, mpsc::RecvError> { self.0.recv() } + #[inline] + pub fn try_recv(&self) -> Result<T, mpsc::TryRecvError> { + self.0.try_recv() + } } pub fn webgl_channel<T>() -> Result<(WebGLSender<T>, WebGLReceiver<T>), ()> { |