From e881e3da0ab198ee2ba58d41b1700af44ae9684c Mon Sep 17 00:00:00 2001 From: Jeong YunWon Date: Tue, 28 Sep 2021 16:56:55 +0900 Subject: [PATCH] move init_winsock to nt --- vm/src/stdlib/nt.rs | 8 ++++++++ vm/src/stdlib/select.rs | 4 +++- vm/src/stdlib/signal.rs | 2 +- vm/src/stdlib/socket.rs | 14 ++------------ 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/vm/src/stdlib/nt.rs b/vm/src/stdlib/nt.rs index c55a42f590..3c08219d81 100644 --- a/vm/src/stdlib/nt.rs +++ b/vm/src/stdlib/nt.rs @@ -427,3 +427,11 @@ macro_rules! suppress_iph { ret }}; } + +pub fn init_winsock() { + static WSA_INIT: parking_lot::Once = parking_lot::Once::new(); + WSA_INIT.call_once(|| unsafe { + let mut wsa_data = std::mem::MaybeUninit::uninit(); + let _ = winapi::um::winsock2::WSAStartup(0x0101, wsa_data.as_mut_ptr()); + }) +} diff --git a/vm/src/stdlib/select.rs b/vm/src/stdlib/select.rs index 47ef9ffbfb..33a2a15e34 100644 --- a/vm/src/stdlib/select.rs +++ b/vm/src/stdlib/select.rs @@ -2,7 +2,9 @@ use crate::{PyObjectRef, PyResult, TryFromBorrowedObject, TryFromObject, Virtual use std::{io, mem}; pub(crate) fn make_module(vm: &VirtualMachine) -> PyObjectRef { - super::socket::init_winsock(); + #[cfg(windows)] + super::nt::init_winsock(); + #[cfg(unix)] { use crate::PyClassImpl; diff --git a/vm/src/stdlib/signal.rs b/vm/src/stdlib/signal.rs index 0eff5d1584..c696012d41 100644 --- a/vm/src/stdlib/signal.rs +++ b/vm/src/stdlib/signal.rs @@ -192,7 +192,7 @@ pub(crate) mod _signal { #[cfg(windows)] let is_socket = if fd != INVALID_WAKEUP { - crate::stdlib::socket::init_winsock(); + crate::stdlib::nt::init_winsock(); let mut res = 0i32; let mut res_size = std::mem::size_of::() as i32; let res = unsafe { diff --git a/vm/src/stdlib/socket.rs b/vm/src/stdlib/socket.rs index 5dd94b1368..63b8778960 100644 --- a/vm/src/stdlib/socket.rs +++ b/vm/src/stdlib/socket.rs @@ -1818,7 +1818,8 @@ rustpython_common::static_cell! { } pub fn make_module(vm: &VirtualMachine) -> PyObjectRef { - init_winsock(); + #[cfg(windows)] + super::nt::init_winsock(); let ctx = &vm.ctx; let socket_timeout = TIMEOUT_ERROR @@ -1978,14 +1979,3 @@ fn extend_module_platform_specific(vm: &VirtualMachine, module: &PyObjectRef) { "sethostname" => named_function!(ctx, _socket, sethostname), }); } - -pub fn init_winsock() { - #[cfg(windows)] - { - static WSA_INIT: parking_lot::Once = parking_lot::Once::new(); - WSA_INIT.call_once(|| unsafe { - let mut wsa_data = std::mem::MaybeUninit::uninit(); - let _ = winapi::um::winsock2::WSAStartup(0x0101, wsa_data.as_mut_ptr()); - }) - } -}