aboutsummaryrefslogtreecommitdiffstats
path: root/components/canvas_traits/webgl_channel/mpsc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'components/canvas_traits/webgl_channel/mpsc.rs')
-rw-r--r--components/canvas_traits/webgl_channel/mpsc.rs16
1 files changed, 9 insertions, 7 deletions
diff --git a/components/canvas_traits/webgl_channel/mpsc.rs b/components/canvas_traits/webgl_channel/mpsc.rs
index 0dd063967ea..40acb050861 100644
--- a/components/canvas_traits/webgl_channel/mpsc.rs
+++ b/components/canvas_traits/webgl_channel/mpsc.rs
@@ -4,7 +4,6 @@
use serde::{Deserialize, Serialize};
use serde::{Deserializer, Serializer};
-use std::sync::mpsc;
#[macro_use]
macro_rules! unreachable_serializable {
@@ -26,8 +25,8 @@ macro_rules! unreachable_serializable {
};
}
-pub struct WebGLSender<T>(mpsc::Sender<T>);
-pub struct WebGLReceiver<T>(mpsc::Receiver<T>);
+pub struct WebGLSender<T>(crossbeam_channel::Sender<T>);
+pub struct WebGLReceiver<T>(crossbeam_channel::Receiver<T>);
impl<T> Clone for WebGLSender<T> {
fn clone(&self) -> Self {
@@ -37,24 +36,27 @@ impl<T> Clone for WebGLSender<T> {
impl<T> WebGLSender<T> {
#[inline]
- pub fn send(&self, data: T) -> Result<(), mpsc::SendError<T>> {
+ pub fn send(&self, data: T) -> Result<(), crossbeam_channel::SendError<T>> {
self.0.send(data)
}
}
impl<T> WebGLReceiver<T> {
#[inline]
- pub fn recv(&self) -> Result<T, mpsc::RecvError> {
+ pub fn recv(&self) -> Result<T, crossbeam_channel::RecvError> {
self.0.recv()
}
#[inline]
- pub fn try_recv(&self) -> Result<T, mpsc::TryRecvError> {
+ pub fn try_recv(&self) -> Result<T, crossbeam_channel::TryRecvError> {
self.0.try_recv()
}
+ pub fn into_inner(self) -> crossbeam_channel::Receiver<T> {
+ self.0
+ }
}
pub fn webgl_channel<T>() -> Result<(WebGLSender<T>, WebGLReceiver<T>), ()> {
- let (sender, receiver) = mpsc::channel();
+ let (sender, receiver) = crossbeam_channel::unbounded();
Ok((WebGLSender(sender), WebGLReceiver(receiver)))
}