aboutsummaryrefslogtreecommitdiff
path: root/src/client/mod.rs
diff options
context:
space:
mode:
authorErk- <[email protected]>2018-12-22 14:04:31 +0100
committerAlex M. M <[email protected]>2018-12-22 14:04:31 +0100
commita2baca08bfd558ed7981cfe8ddb2659f3b6e9fb9 (patch)
tree498124365df67b3e2c3e18b6bc1383c3bfa2d70c /src/client/mod.rs
parentFix `Emoji::url` to use .gif for animated emoji (#449) (diff)
downloadserenity-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.rs13
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")]