Skip to content

Commit 8968757

Browse files
committed
refactor: extract method JobManger::push_opt
1 parent 7e933f9 commit 8968757

File tree

2 files changed

+26
-25
lines changed

2 files changed

+26
-25
lines changed

src/app.rs

Lines changed: 20 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -139,43 +139,38 @@ fn start_torrent_repository_event_listener(
139139
app_container: &Arc<AppContainer>,
140140
job_manager: &mut JobManager,
141141
) {
142-
let opt_handle = jobs::torrent_repository::start_event_listener(config, app_container);
143-
144-
if let Some(handle) = opt_handle {
145-
job_manager.push("torrent_repository_event_listener", handle);
146-
}
142+
job_manager.push_opt(
143+
"torrent_repository_event_listener",
144+
jobs::torrent_repository::start_event_listener(config, app_container),
145+
);
147146
}
148147

149148
fn start_tracker_core_event_listener(config: &Configuration, app_container: &Arc<AppContainer>, job_manager: &mut JobManager) {
150-
let opt_handle = jobs::tracker_core::start_event_listener(config, app_container);
151-
152-
if let Some(handle) = opt_handle {
153-
job_manager.push("tracker_core_event_listener", handle);
154-
}
149+
job_manager.push_opt(
150+
"tracker_core_event_listener",
151+
jobs::tracker_core::start_event_listener(config, app_container),
152+
);
155153
}
156154

157155
fn start_http_core_event_listener(config: &Configuration, app_container: &Arc<AppContainer>, job_manager: &mut JobManager) {
158-
let opt_handle = jobs::http_tracker_core::start_event_listener(config, app_container);
159-
160-
if let Some(handle) = opt_handle {
161-
job_manager.push("http_core_event_listener", handle);
162-
}
156+
job_manager.push_opt(
157+
"http_core_event_listener",
158+
jobs::http_tracker_core::start_event_listener(config, app_container),
159+
);
163160
}
164161

165162
fn start_udp_core_event_listener(config: &Configuration, app_container: &Arc<AppContainer>, job_manager: &mut JobManager) {
166-
let opt_handle = jobs::udp_tracker_core::start_event_listener(config, app_container);
167-
168-
if let Some(handle) = opt_handle {
169-
job_manager.push("udp_core_event_listener", handle);
170-
}
163+
job_manager.push_opt(
164+
"udp_core_event_listener",
165+
jobs::udp_tracker_core::start_event_listener(config, app_container),
166+
);
171167
}
172168

173169
fn start_udp_server_event_listener(config: &Configuration, app_container: &Arc<AppContainer>, job_manager: &mut JobManager) {
174-
let opt_handle = jobs::udp_tracker_server::start_event_listener(config, app_container);
175-
176-
if let Some(handle) = opt_handle {
177-
job_manager.push("udp_server_event_listener", handle);
178-
}
170+
job_manager.push_opt(
171+
"udp_server_event_listener",
172+
jobs::udp_tracker_server::start_event_listener(config, app_container),
173+
);
179174
}
180175

181176
async fn start_the_udp_instances(config: &Configuration, app_container: &Arc<AppContainer>, job_manager: &mut JobManager) {

src/bootstrap/jobs/manager.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,12 @@ impl JobManager {
3636
self.jobs.push(Job::new(name, handle));
3737
}
3838

39+
pub fn push_opt<N: Into<String>>(&mut self, name: N, handle: Option<JoinHandle<()>>) {
40+
if let Some(handle) = handle {
41+
self.push(name, handle);
42+
}
43+
}
44+
3945
/// Waits sequentially for all jobs to complete, with a graceful timeout per
4046
/// job.
4147
pub async fn wait_for_all(mut self, grace_period: Duration) {

0 commit comments

Comments
 (0)