aboutsummaryrefslogtreecommitdiff
path: root/src/client
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-10-14 22:41:25 +0200
committeracdenisSK <[email protected]>2017-10-14 22:41:25 +0200
commitcae014758a1d1e926a71679f02e32601c57f8d52 (patch)
tree39270dbc2df916a91c3c4272600fd082a2604516 /src/client
parentSwitch to parking_lot::{Mutex, RwLock} (diff)
parentRelease v0.4.1 (diff)
downloadserenity-cae014758a1d1e926a71679f02e32601c57f8d52.tar.xz
serenity-cae014758a1d1e926a71679f02e32601c57f8d52.zip
Update to account for changes made in 0.4.1
Diffstat (limited to 'src/client')
-rw-r--r--src/client/bridge/gateway/shard_manager.rs13
-rw-r--r--src/client/bridge/gateway/shard_queuer.rs14
-rw-r--r--src/client/bridge/gateway/shard_runner.rs8
-rw-r--r--src/client/dispatch.rs2
-rw-r--r--src/client/mod.rs12
5 files changed, 27 insertions, 22 deletions
diff --git a/src/client/bridge/gateway/shard_manager.rs b/src/client/bridge/gateway/shard_manager.rs
index 4a50b56..6e3b285 100644
--- a/src/client/bridge/gateway/shard_manager.rs
+++ b/src/client/bridge/gateway/shard_manager.rs
@@ -32,6 +32,7 @@ pub struct ShardManager {
impl ShardManager {
#[cfg(feature = "framework")]
+ #[cfg_attr(feature = "cargo-clippy", allow(too_many_arguments))]
pub fn new<H>(
shard_index: u64,
shard_init: u64,
@@ -49,15 +50,15 @@ impl ShardManager {
let runners = Arc::new(Mutex::new(HashMap::new()));
let mut shard_queuer = ShardQueuer {
- data: data.clone(),
- event_handler: event_handler.clone(),
- framework: framework.clone(),
+ data: Arc::clone(&data),
+ event_handler: Arc::clone(&event_handler),
+ framework: Arc::clone(&framework),
last_start: None,
manager_tx: thread_tx.clone(),
- runners: runners.clone(),
+ runners: Arc::clone(&runners),
rx: shard_queue_rx,
- token: token.clone(),
- ws_url: ws_url.clone(),
+ token: Arc::clone(&token),
+ ws_url: Arc::clone(&ws_url),
threadpool,
};
diff --git a/src/client/bridge/gateway/shard_queuer.rs b/src/client/bridge/gateway/shard_queuer.rs
index f75e35d..cb3f749 100644
--- a/src/client/bridge/gateway/shard_queuer.rs
+++ b/src/client/bridge/gateway/shard_queuer.rs
@@ -80,16 +80,20 @@ impl<H: EventHandler + Send + Sync + 'static> ShardQueuer<H> {
fn start(&mut self, shard_id: ShardId, shard_total: ShardId) -> Result<()> {
let shard_info = [shard_id.0, shard_total.0];
- let shard = Shard::new(self.ws_url.clone(), self.token.clone(), shard_info)?;
+ let shard = Shard::new(
+ Arc::clone(&self.ws_url),
+ Arc::clone(&self.token),
+ shard_info,
+ )?;
let locked = Arc::new(Mutex::new(shard));
let mut runner = feature_framework! {{
ShardRunner::new(
- locked.clone(),
+ Arc::clone(&locked),
self.manager_tx.clone(),
- self.framework.clone(),
- self.data.clone(),
- self.event_handler.clone(),
+ Arc::clone(&self.framework),
+ Arc::clone(&self.data),
+ Arc::clone(&self.event_handler),
self.threadpool.clone(),
)
} else {
diff --git a/src/client/bridge/gateway/shard_runner.rs b/src/client/bridge/gateway/shard_runner.rs
index 53d4b80..b14e48b 100644
--- a/src/client/bridge/gateway/shard_runner.rs
+++ b/src/client/bridge/gateway/shard_runner.rs
@@ -110,12 +110,12 @@ impl<H: EventHandler + Send + Sync + 'static> ShardRunner<H> {
let (event, successful) = self.recv_event();
if let Some(event) = event {
- let data = self.data.clone();
- let event_handler = self.event_handler.clone();
- let shard = self.shard.clone();
+ let data = Arc::clone(&self.data);
+ let event_handler = Arc::clone(&self.event_handler);
+ let shard = Arc::clone(&self.shard);
feature_framework! {{
- let framework = self.framework.clone();
+ let framework = Arc::clone(&self.framework);
self.threadpool.execute(|| {
dispatch(
diff --git a/src/client/dispatch.rs b/src/client/dispatch.rs
index aec6283..c296b70 100644
--- a/src/client/dispatch.rs
+++ b/src/client/dispatch.rs
@@ -204,7 +204,7 @@ fn handle_event<H: EventHandler + 'static>(event: Event,
let cache = CACHE.read();
if cache.unavailable_guilds.is_empty() {
- let context = context(conn.clone(), data.clone());
+ let context = context(Arc::clone(&conn), Arc::clone(&data));
let guild_amount = cache
.guilds
diff --git a/src/client/mod.rs b/src/client/mod.rs
index c17e284..6f6b5ba 100644
--- a/src/client/mod.rs
+++ b/src/client/mod.rs
@@ -766,16 +766,16 @@ impl<H: EventHandler + Send + Sync + 'static> Client<H> {
shard_data[0],
shard_data[1] - shard_data[0] + 1,
shard_data[2],
- gateway_url.clone(),
- self.token.clone(),
- self.data.clone(),
- self.event_handler.clone(),
+ Arc::clone(&gateway_url),
+ Arc::clone(&self.token),
+ Arc::clone(&self.data),
+ Arc::clone(&self.event_handler),
#[cfg(feature = "framework")]
- self.framework.clone(),
+ Arc::clone(&self.framework),
self.threadpool.clone(),
);
- self.shard_runners = manager.runners.clone();
+ self.shard_runners = Arc::clone(&manager.runners);
if let Err(why) = manager.initialize() {
error!("Failed to boot a shard: {:?}", why);