actors: Introduce non-reentrant actors by default.
[8sync.git] / 8sync / agenda.scm
index 828153033840ce180a8914c3fecdda42139d440d..c3859d074df8c11eadf95961c2ca1e0521ccc126 100644 (file)
@@ -411,7 +411,8 @@ forge ahead in our current function!"
     ;; convert into sec / usec pair
     (receive (secs usecs)
         (floor/ next-time-in-usecs 1000000)
-      (cons secs (floor usecs))))
+      (cons (inexact->exact secs)
+            (inexact->exact (floor usecs)))))
   (define (convert-integer)
     (cons (+ in-secs cur-secs) cur-usecs))
   (if (integer? in-secs)
@@ -466,7 +467,7 @@ Also handles sleeping when all we have to do is wait on the schedule."
     ;; TODO: support usecond wait time too
     (match (get-wait-time)
       ((sec . usec)
-       (catch 'system-error
+       (catch #t           ; expect: wrong-type-arg (open port), system-error
          (lambda ()
            (select (hash-keys (agenda-read-port-map agenda))
                    (hash-keys (agenda-write-port-map agenda))