pub async fn sys_interrupt_wait(
        &self,
        interrupt: HandleValue,
        mut out: UserOutPtr<i64>,
    ) -> ZxResult {
        info!("interrupt.wait: handle={:?}", interrupt);
        assert_eq!(core::mem::size_of::<PortPacket>(), 48);
        let proc = self.thread.proc();
        let interrupt = proc.get_object_with_rights::<Interrupt>(interrupt, Rights::WAIT)?;
        let future = interrupt.wait();
        pin_mut!(future);
        let timestamp = self
            .thread
            .blocking_run(
                future,
                ThreadState::BlockedInterrupt,
                Deadline::forever().into(),
                None,
            )
            .await?;
        out.write_if_not_null(timestamp)?;
        Ok(())
    }
/// A blocking syscall which causes the caller to wait until an interrupt is triggered.
A blocking syscall which causes the caller to wait until an interrupt is triggered.
A blocking syscall which causes the caller to wait until an interrupt is triggered .
pub async fn sys_interrupt_wait(
        &self,
        interrupt: HandleValue,
        mut out: UserOutPtr<i64>,
    ) -> ZxResult {
        info!("interrupt.wait: handle={:?}", interrupt);
        assert_eq!(core::mem::size_of::<PortPacket>(), 48);
        let proc = self.thread.proc();
        let interrupt = proc.get_object_with_rights::<Interrupt>(interrupt, Rights::WAIT)?;
        let future = interrupt.wait();
        pin_mut!(future);
        let timestamp = self
            .thread
            .blocking_run(
                future,
                ThreadState::BlockedInterrupt,
                Deadline::forever().into(),
                None,
            )
            .await?;
        out.write_if_not_null(timestamp)?;
        Ok(())
    }
pub async fn sys_interrupt_wait ( & self , interrupt : HandleValue , mut out : UserOutPtr < i64 > , ) -> ZxResult { info ! ( " " interrupt ) ; assert_eq ! ( core mem size_of PortPacket ( ) 48 ) ; let proc = self . thread . proc ( ) ; let interrupt = proc . get_object_with_rights :: < Interrupt > ( interrupt , Rights :: WAIT ) ? ; let future = interrupt . wait ( ) ; pin_mut ! ( future ) ; let timestamp = self . thread . blocking_run ( future , ThreadState :: BlockedInterrupt , Deadline :: forever ( ) . into ( ) , None , ) . await ? ; out . write_if_not_null ( timestamp ) ? ; Ok ( ( ) ) }
A blocking syscall which causes the caller to wait until an interrupt is triggered.
A blocking syscall which causes the caller to wait until an interrupt is triggered .
&self
interrupt
HandleValue
out
UserOutPtr<i64>
&self
interrupt
HandleValue
out
UserOutPtr<i64>