|
@@ -137,12 +137,13 @@
|
|
|
(scheduler (symbol-append name '-scheduler)))
|
|
(scheduler (symbol-append name '-scheduler)))
|
|
|
`(progn
|
|
`(progn
|
|
|
(defun ,name ()
|
|
(defun ,name ()
|
|
|
- (unwind-protect
|
|
|
|
|
- (handler-case
|
|
|
|
|
- (let ((*random-state* (make-random-state t)))
|
|
|
|
|
- ,@body)
|
|
|
|
|
- (error (e) (log:error "~A" e)))
|
|
|
|
|
- (dex:clear-connection-pool)))
|
|
|
|
|
|
|
+ (with-random-state
|
|
|
|
|
+ (unwind-protect
|
|
|
|
|
+ (handler-case
|
|
|
|
|
+ +sbcl (sb-sys:with-interrupts ,@body)
|
|
|
|
|
+ -sbcl (progn ,@body)
|
|
|
|
|
+ (error (e) (log:error "~A" e)))
|
|
|
|
|
+ (dex:clear-connection-pool))))
|
|
|
(defun ,scheduler ()
|
|
(defun ,scheduler ()
|
|
|
(clon:schedule-function
|
|
(clon:schedule-function
|
|
|
',name (clon:make-scheduler
|
|
',name (clon:make-scheduler
|
|
@@ -150,6 +151,7 @@
|
|
|
,@schedule)
|
|
,@schedule)
|
|
|
:allow-now-p t)
|
|
:allow-now-p t)
|
|
|
:name ',name
|
|
:name ',name
|
|
|
- :thread t)
|
|
|
|
|
|
|
+ :thread (bt:make-thread (lambda () (loop (sleep 1)))
|
|
|
|
|
+ :name (format nil "Sleeper '~A'" (symbol-name ',name))))
|
|
|
(values))
|
|
(values))
|
|
|
(add-hook :starting ',scheduler))))
|
|
(add-hook :starting ',scheduler))))
|