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
) tv isys
:timeval
)
10 (multiple-value-bind (%sec %usec
)
11 (decode-timeout timeout
)
15 (defun timeout->timespec
(timeout ts
)
16 (with-foreign-slots ((isys:sec isys
:nsec
) ts isys
:timespec
)
17 (multiple-value-bind (%sec %usec
)
18 (decode-timeout timeout
)
20 isys
:nsec
(* 1000 %usec
)))))
22 (defun timeout->milliseconds
(timeout)
24 (multiple-value-bind (sec usec
)
25 (decode-timeout timeout
)
27 (truncate usec
1000)))