From 867a437da2a51daf465dba5d6a8a9b99aeac4cd4 Mon Sep 17 00:00:00 2001 From: Noah <33094578+coolreader18@users.noreply.github.com> Date: Sat, 15 May 2021 11:31:46 -0500 Subject: [PATCH] Fix install-pip regressions --- vm/src/stdlib/io.rs | 2 ++ vm/src/stdlib/select.rs | 12 +++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/vm/src/stdlib/io.rs b/vm/src/stdlib/io.rs index 5ecf03e07..d9917a98a 100644 --- a/vm/src/stdlib/io.rs +++ b/vm/src/stdlib/io.rs @@ -33,6 +33,8 @@ pub(crate) fn make_module(vm: &VirtualMachine) -> PyObjectRef { // not used on all platforms #[allow(unused)] +#[derive(Copy, Clone)] +#[repr(transparent)] pub(crate) struct Fildes(pub i32); impl TryFromObject for Fildes { diff --git a/vm/src/stdlib/select.rs b/vm/src/stdlib/select.rs index 5a9718e0f..c0167060f 100644 --- a/vm/src/stdlib/select.rs +++ b/vm/src/stdlib/select.rs @@ -257,6 +257,7 @@ mod decl { use crate::common::lock::PyMutex; use crate::function::OptionalArg; use crate::pyobject::{BorrowValue, IntoPyObject, PyValue, StaticType}; + use crate::stdlib::io::Fildes; use libc::pollfd; use num_traits::ToPrimitive; use std::time; @@ -306,7 +307,7 @@ mod decl { #[pyimpl] impl PyPoll { #[pymethod] - fn register(&self, fd: i32, eventmask: OptionalArg) { + fn register(&self, Fildes(fd): Fildes, eventmask: OptionalArg) { insert_fd( &mut self.fds.lock(), fd, @@ -315,7 +316,12 @@ mod decl { } #[pymethod] - fn modify(&self, fd: i32, eventmask: u16, vm: &VirtualMachine) -> PyResult<()> { + fn modify( + &self, + Fildes(fd): Fildes, + eventmask: u16, + vm: &VirtualMachine, + ) -> PyResult<()> { let mut fds = self.fds.lock(); let pfd = get_fd_mut(&mut fds, fd).ok_or_else(|| { io::Error::from_raw_os_error(libc::ENOENT).into_pyexception(vm) @@ -325,7 +331,7 @@ mod decl { } #[pymethod] - fn unregister(&self, fd: i32, vm: &VirtualMachine) -> PyResult<()> { + fn unregister(&self, Fildes(fd): Fildes, vm: &VirtualMachine) -> PyResult<()> { let removed = remove_fd(&mut self.fds.lock(), fd); removed .map(drop)