321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
|
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
|
-
-
-
+
+
+
+
+
+
+
|
*my-client-signature*)))
;; wait for server=start-last to be three seconds old
;;
(define (server:wait-for-server-start-last-flag areapath)
(let* ((start-flag (conc areapath "/logs/server-start-last")))
(if (file-exists? start-flag)
(let* ((fmodtime (file-modification-time start-flag)))
(if (> (- (current-seconds) fmodtime) 3) ;; good enough
(system (conc "touch " start-flag)) ;; lazy but safe
(let* ((fmodtime (file-modification-time start-flag))
(reftime (+ 3 (random 5)))
(delta (- (current-seconds) fmodtime)))
(if (> delta reftime) ;; good enough
(begin
(debug:print-info 0 *default-log-port* "Ready to start server, last start: " fmodtime ", delta: " delta)
(system (conc "touch " start-flag))) ;; lazy but safe
(begin
(thread-sleep! 5)
(server:wait-for-server-start-last-flag areapath))))
(system (conc "touch " start-flag)))))
;; kind start up of servers, wait 40 seconds before allowing another server for a given
|