mirror of
https://github.com/RustPython/RustPython.git
synced 2026-10-28 10:44:36 +08:00
Optimize list removal lock usage (#8451)
Assisted-by: WarpForgeAgent:DeepSeek-v4-flash
This commit is contained in:
1 parent
3c70a1ba58
commit
5c07fa4bd0
3 files changed
+9
-6
No files matched your search
@@ -42,7 +42,7 @@ repos:
|
||||
|
||||
- id: generate-rs-opcode-metadata
|
||||
name: generate rust opcode metadata
|
||||
entry: python tools/opcode_metadata/generate_rs_opcode_metadata.py
|
||||
entry: python3 tools/opcode_metadata/generate_rs_opcode_metadata.py
|
||||
files: '^(crates/compiler-core/src/bytecode/instruction\.rs|tools/opcode_metadata/*)$'
|
||||
pass_filenames: false
|
||||
language: system
|
||||
@@ -53,7 +53,7 @@ repos:
|
||||
|
||||
- id: generate-py-opcode-metadata
|
||||
name: generate python opcode metadata
|
||||
entry: python tools/opcode_metadata/generate_py_opcode_metadata.py
|
||||
entry: python3 tools/opcode_metadata/generate_py_opcode_metadata.py
|
||||
files: '^(crates/compiler-core/src/bytecode/instruction\.rs|tools/opcode_metadata/*)$'
|
||||
pass_filenames: false
|
||||
language: system
|
||||
|
||||
@@ -372,12 +372,15 @@ impl PyList {
|
||||
|
||||
if let Some(index) = index.into() {
|
||||
// defer delete out of borrow
|
||||
let is_inside_range = index < self.borrow_vec().len();
|
||||
Ok(is_inside_range.then(|| self.borrow_vec_mut().remove(index)))
|
||||
let removed = {
|
||||
let mut elements = self.borrow_vec_mut();
|
||||
(index < elements.len()).then(|| elements.remove(index))
|
||||
};
|
||||
drop(removed);
|
||||
Ok(())
|
||||
} else {
|
||||
Err(vm.new_value_error(format!("'{}' is not in list", needle.str(vm)?)))
|
||||
}
|
||||
.map(drop)
|
||||
}
|
||||
|
||||
fn _delitem(&self, needle: &PyObject, vm: &VirtualMachine) -> PyResult<()> {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import ast
|
||||
import glob
|
||||
|
||||
Reference in new issue
Block a user