MCPcopy Create free account
hub / github.com/RustPython/RustPython / reinit_io_locks

Function reinit_io_locks

crates/vm/src/stdlib/_io.rs:5013–5048  ·  view source on GitHub ↗
(obj: &PyObject)

Source from the content-addressed store, hash-verified

5011
5012 #[cfg(all(unix, feature = "threading"))]
5013 fn reinit_io_locks(obj: &PyObject) {
5014 use crate::common::lock::reinit_thread_mutex_after_fork;
5015
5016 if let Some(tio) = obj.downcast_ref::<TextIOWrapper>() {
5017 unsafe { reinit_thread_mutex_after_fork(&tio.data) };
5018 if let Some(guard) = tio.data.lock()
5019 && let Some(ref data) = *guard
5020 {
5021 if let Some(ref decoder) = data.decoder {
5022 reinit_io_locks(decoder);
5023 }
5024 reinit_io_locks(&data.buffer);
5025 }
5026 return;
5027 }
5028 if let Some(nl) = obj.downcast_ref::<IncrementalNewlineDecoder>() {
5029 unsafe { reinit_thread_mutex_after_fork(&nl.data) };
5030 return;
5031 }
5032 if let Some(br) = obj.downcast_ref::<BufferedReader>() {
5033 unsafe { reinit_thread_mutex_after_fork(&br.data) };
5034 return;
5035 }
5036 if let Some(bw) = obj.downcast_ref::<BufferedWriter>() {
5037 unsafe { reinit_thread_mutex_after_fork(&bw.data) };
5038 return;
5039 }
5040 if let Some(brw) = obj.downcast_ref::<BufferedRandom>() {
5041 unsafe { reinit_thread_mutex_after_fork(&brw.data) };
5042 return;
5043 }
5044 if let Some(brw) = obj.downcast_ref::<BufferedRWPair>() {
5045 unsafe { reinit_thread_mutex_after_fork(&brw.read.data) };
5046 unsafe { reinit_thread_mutex_after_fork(&brw.write.data) };
5047 }
5048 }
5049
5050 pub fn io_open(
5051 file: PyObjectRef,

Callers 1

Calls 2

lockMethod · 0.45

Tested by

no test coverage detected