Mark ENOLINK and EMULTIHOP as optional
[iolib.git] / src / multiplex / utils.lisp
blobd3e1129763153823d644bd0f16b2c006fb44b365
1 ;;;; -*- Mode: Lisp; indent-tabs-mode: nil -*-
2 ;;;
3 ;;; --- Miscellaneous utilities.
4 ;;;
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)
13 (setf isys:sec %sec
14 isys:usec %usec))))
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)
21 (setf isys:sec %sec
22 isys:nsec (* 1000 %usec)))))
24 (defun timeout->milliseconds (timeout)
25 (if timeout
26 (multiple-value-bind (sec usec)
27 (decode-timeout timeout)
28 (+ (* sec 1000)
29 (truncate usec 1000)))
30 -1))