diff options
| author | Erk- <[email protected]> | 2018-12-22 14:04:31 +0100 |
|---|---|---|
| committer | Alex M. M <[email protected]> | 2018-12-22 14:04:31 +0100 |
| commit | a2baca08bfd558ed7981cfe8ddb2659f3b6e9fb9 (patch) | |
| tree | 498124365df67b3e2c3e18b6bc1383c3bfa2d70c /src/client/mod.rs | |
| parent | Fix `Emoji::url` to use .gif for animated emoji (#449) (diff) | |
| download | serenity-a2baca08bfd558ed7981cfe8ddb2659f3b6e9fb9.tar.xz serenity-a2baca08bfd558ed7981cfe8ddb2659f3b6e9fb9.zip | |
Implement the proposed change to the sharemap (`Mutex` => `RwLock`) (#453)
Diffstat (limited to 'src/client/mod.rs')
| -rw-r--r-- | src/client/mod.rs | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/src/client/mod.rs b/src/client/mod.rs index bbedf89..164fea7 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -40,12 +40,11 @@ pub use crate::http as rest; #[cfg(feature = "cache")] pub use crate::cache::Cache; -#[cfg(feature = "cache")] -use parking_lot::RwLock; use crate::http; use crate::internal::prelude::*; use parking_lot::Mutex; +use parking_lot::RwLock; use self::bridge::gateway::{ShardManager, ShardManagerMonitor, ShardManagerOptions}; use std::{sync::Arc, time::Duration}; use threadpool::ThreadPool; @@ -141,7 +140,7 @@ pub struct Client { /// macro_rules! reg { /// ($ctx:ident $name:expr) => { /// { - /// let mut data = $ctx.data.lock(); + /// let mut data = $ctx.data.write(); /// let counter = data.get_mut::<MessageEventCounter>().unwrap(); /// let entry = counter.entry($name).or_insert(0); /// *entry += 1; @@ -164,7 +163,7 @@ pub struct Client { /// let mut client = Client::new(&env::var("DISCORD_TOKEN").unwrap(), Handler); /// /// { - /// let mut data = client.data.lock(); + /// let mut data = client.data.write(); /// data.insert::<MessageEventCounter>(HashMap::default()); /// } /// @@ -179,7 +178,7 @@ pub struct Client { /// [`Event::MessageDeleteBulk`]: ../model/event/enum.Event.html#variant.MessageDeleteBulk /// [`Event::MessageUpdate`]: ../model/event/enum.Event.html#variant.MessageUpdate /// [example 05]: https://github.com/serenity-rs/serenity/tree/current/examples/05_command_framework - pub data: Arc<Mutex<ShareMap>>, + pub data: Arc<RwLock<ShareMap>>, /// A vector of all active shards that have received their [`Event::Ready`] /// payload, and have dispatched to [`on_ready`] if an event handler was /// configured. @@ -348,7 +347,7 @@ impl Client { let name = "serenity client".to_owned(); let threadpool = ThreadPool::with_name(name, 5); let url = Arc::new(Mutex::new(http::get_gateway()?.url)); - let data = Arc::new(Mutex::new(ShareMap::custom())); + let data = Arc::new(RwLock::new(ShareMap::custom())); let event_handler = Arc::new(handler); #[cfg(feature = "framework")] @@ -451,7 +450,7 @@ impl Client { let name = "serenity client".to_owned(); let threadpool = ThreadPool::with_name(name, 5); let url = Arc::new(Mutex::new(http::get_gateway()?.url)); - let data = Arc::new(Mutex::new(ShareMap::custom())); + let data = Arc::new(RwLock::new(ShareMap::custom())); let event_handler = Arc::new(handler); #[cfg(feature = "framework")] |