From 7853c5d0391565bdd0aa6f12c9c1c212c515ca35 Mon Sep 17 00:00:00 2001 From: Michel Meyer Date: Thu, 31 Dec 2020 15:04:34 +0100 Subject: [PATCH 1/2] Fix warnings --- lib.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib.rs b/lib.rs index a1a46c3..e0f5fa3 100644 --- a/lib.rs +++ b/lib.rs @@ -60,7 +60,6 @@ use slog::{BorrowedKV, Level, Record, RecordStatic, SingleKV, KV}; use slog::{Key, OwnedKVList, Serializer}; use slog::Drain; -use std::error::Error; use std::fmt; use std::sync; use std::{io, thread}; @@ -210,7 +209,7 @@ impl From> for AsyncError { fn from(err: std::sync::PoisonError) -> AsyncError { AsyncError::Fatal(Box::new(io::Error::new( io::ErrorKind::BrokenPipe, - err.description(), + err.to_string(), ))) } } From 5d66a44c1643dd869c20931e0c8a3edc7fba5020 Mon Sep 17 00:00:00 2001 From: Michel Meyer Date: Thu, 31 Dec 2020 15:05:32 +0100 Subject: [PATCH 2/2] Replace crossbeam-channel by flume --- Cargo.toml | 2 +- lib.rs | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 71d7f38..5abc568 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -23,7 +23,7 @@ path = "lib.rs" slog = "2.1" thread_local = "1" take_mut = "0.2.0" -crossbeam-channel = "0.5" +flume = "0.10.1" [package.metadata.docs.rs] features = ["nested-values", "dynamic-keys"] diff --git a/lib.rs b/lib.rs index e0f5fa3..0c3f0a6 100644 --- a/lib.rs +++ b/lib.rs @@ -50,11 +50,11 @@ #[macro_use] extern crate slog; -extern crate crossbeam_channel; +extern crate flume; extern crate take_mut; extern crate thread_local; -use crossbeam_channel::Sender; +use flume::Sender; use slog::{BorrowedKV, Level, Record, RecordStatic, SingleKV, KV}; use slog::{Key, OwnedKVList, Serializer}; @@ -190,14 +190,14 @@ pub enum AsyncError { Fatal(Box), } -impl From> for AsyncError { - fn from(_: crossbeam_channel::TrySendError) -> AsyncError { +impl From> for AsyncError { + fn from(_: flume::TrySendError) -> AsyncError { AsyncError::Full } } -impl From> for AsyncError { - fn from(_: crossbeam_channel::SendError) -> AsyncError { +impl From> for AsyncError { + fn from(_: flume::SendError) -> AsyncError { AsyncError::Fatal(Box::new(io::Error::new( io::ErrorKind::BrokenPipe, "The logger thread terminated", @@ -274,7 +274,7 @@ where } fn spawn_thread(self) -> (thread::JoinHandle<()>, Sender) { - let (tx, rx) = crossbeam_channel::bounded(self.chan_size); + let (tx, rx) = flume::bounded(self.chan_size); let mut builder = thread::Builder::new(); if let Some(thread_name) = self.thread_name { builder = builder.name(thread_name); @@ -414,9 +414,9 @@ impl AsyncCore { fn get_sender( &self, ) -> Result< - &crossbeam_channel::Sender, + &flume::Sender, std::sync::PoisonError< - sync::MutexGuard>, + sync::MutexGuard>, >, > { self.tl_sender.get_or_try(|| Ok(self.ref_sender.clone()))