1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
3 ;;; --- Miscellaneous utilities.
6 (in-package :iolib
/multiplex
)
8 (defun timeout->timeval
(timeout tv
)
9 (with-foreign-slots ((isys:sec isys
:usec
)
10 tv
(:struct isys
:timeval
))
11 (multiple-value-bind (%sec %usec
)
12 (decode-timeout timeout
)
16 (defun timeout->timespec
(timeout ts
)
17 (with-foreign-slots ((isys:sec isys
:nsec
)
18 ts
(:struct isys
:timespec
))
19 (multiple-value-bind (%sec %usec
)
20 (decode-timeout timeout
)
22 isys
:nsec
(* 1000 %usec
)))))
24 (defun timeout->milliseconds
(timeout)
26 (multiple-value-bind (sec usec
)
27 (decode-timeout timeout
)
29 (truncate usec
1000)))