Skip to content

Commit 8520b95

Browse files
committed
refactor: removing parking_lock
1 parent e457a98 commit 8520b95

File tree

3 files changed

+14
-25
lines changed

3 files changed

+14
-25
lines changed

Cargo.lock

Lines changed: 0 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ serde_json = "1"
3434
dyn-clone = "1"
3535
rustc-hash = "1"
3636
once_cell = "1"
37-
parking_lot = "0.12"
3837
dashmap = "5"
3938
substring = "1"
4039
smallvec = "1.11.2"

src/replace_source.rs

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ use std::{
44
hash::{Hash, Hasher},
55
sync::{
66
atomic::{AtomicBool, Ordering},
7-
Arc,
7+
Arc, Mutex, MutexGuard,
88
},
99
};
1010

1111
use once_cell::sync::OnceCell;
12-
use parking_lot::Mutex;
1312
use rustc_hash::FxHashMap as HashMap;
1413

1514
use crate::{
@@ -103,13 +102,16 @@ impl<T> ReplaceSource<T> {
103102
&self.inner
104103
}
105104

105+
fn replacements(&self) -> MutexGuard<Vec<Replacement>> {
106+
self.replacements.lock().unwrap()
107+
}
108+
106109
fn sort_replacement(&self) {
107110
if self.is_sorted.load(Ordering::SeqCst) {
108111
return;
109112
}
110113
self
111-
.replacements
112-
.lock()
114+
.replacements()
113115
.sort_by(|a, b| (a.start, a.end).cmp(&(b.start, b.end)));
114116
self.is_sorted.store(true, Ordering::SeqCst)
115117
}
@@ -135,7 +137,7 @@ impl<T: Source> ReplaceSource<T> {
135137
content: &str,
136138
name: Option<&str>,
137139
) {
138-
self.replacements.lock().push(Replacement::new(
140+
self.replacements().push(Replacement::new(
139141
start,
140142
end,
141143
content.into(),
@@ -155,7 +157,7 @@ impl<T: Source + Hash + PartialEq + Eq + 'static> Source for ReplaceSource<T> {
155157
// concatenate strings benchmark, see https://github.com/hoodie/concatenation_benchmarks-rs
156158
let mut source_code = String::new();
157159
let mut inner_pos = 0;
158-
for replacement in self.replacements.lock().iter() {
160+
for replacement in self.replacements.lock().unwrap().iter() {
159161
if inner_pos < replacement.start {
160162
let end_pos = (replacement.start as usize).min(inner_source_code.len());
161163
source_code.push_str(&inner_source_code[inner_pos as usize..end_pos]);
@@ -185,7 +187,7 @@ impl<T: Source + Hash + PartialEq + Eq + 'static> Source for ReplaceSource<T> {
185187
}
186188

187189
fn map(&self, options: &crate::MapOptions) -> Option<SourceMap> {
188-
let replacements = self.replacements.lock();
190+
let replacements = self.replacements.lock().unwrap();
189191
if replacements.is_empty() {
190192
return self.inner.map(options);
191193
}
@@ -223,7 +225,7 @@ impl<T: std::fmt::Debug> std::fmt::Debug for ReplaceSource<T> {
223225

224226
impl<T: Source> StreamChunks for ReplaceSource<T> {
225227
fn mappings_size_hint(&self) -> usize {
226-
self.replacements.lock().len() * 2
228+
self.replacements.lock().unwrap().len() * 2
227229
}
228230

229231
fn stream_chunks(
@@ -235,7 +237,7 @@ impl<T: Source> StreamChunks for ReplaceSource<T> {
235237
) -> crate::helpers::GeneratedInfo {
236238
self.sort_replacement();
237239
let on_name = RefCell::new(on_name);
238-
let repls = self.replacements.lock();
240+
let repls = self.replacements();
239241
let mut pos: u32 = 0;
240242
let mut i: usize = 0;
241243
let mut replacement_end: Option<u32> = None;
@@ -646,7 +648,7 @@ impl<T: Source> Clone for ReplaceSource<T> {
646648
Self {
647649
inner: self.inner.clone(),
648650
inner_source_code: self.inner_source_code.clone(),
649-
replacements: Mutex::new(self.replacements.lock().clone()),
651+
replacements: Mutex::new(self.replacements().clone()),
650652
is_sorted: AtomicBool::new(true),
651653
}
652654
}
@@ -656,7 +658,7 @@ impl<T: Hash> Hash for ReplaceSource<T> {
656658
fn hash<H: Hasher>(&self, state: &mut H) {
657659
self.sort_replacement();
658660
"ReplaceSource".hash(state);
659-
for repl in self.replacements.lock().iter() {
661+
for repl in self.replacements().iter() {
660662
repl.hash(state);
661663
}
662664
self.inner.hash(state);
@@ -665,8 +667,7 @@ impl<T: Hash> Hash for ReplaceSource<T> {
665667

666668
impl<T: PartialEq> PartialEq for ReplaceSource<T> {
667669
fn eq(&self, other: &Self) -> bool {
668-
self.inner == other.inner
669-
&& *self.replacements.lock() == *other.replacements.lock()
670+
self.inner == other.inner && *self.replacements() == *other.replacements()
670671
}
671672
}
672673

0 commit comments

Comments
 (0)