Megatest

Diff
Login

Differences From Artifact [dc052c2093]:

To Artifact [64c69c7a6f]:


416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432












433
434
435
436
437
438
439
416
417
418
419
420
421
422










423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441







-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+







		 (thread-sleep! ( + 1 idletime))
		 (server:wait-for-server-start-last-flag areapath)))))))

;; oldest server alive determines host then choose random of youngest
;; five servers on that host
;;
(define (server:get-servers-info areapath)
  (let* ((servinfodir (conc *toppath*"/.servinfo"))
	 (allfiles    (glob (conc servinfodir"/*")))
	 (res         (make-hash-table)))
    (for-each
     (lambda (f)
       (let* ((hostport  (pathname-strip-directory f))
	      (serverdat (server:logf-get-start-info f)))
	 (hash-table-set! res hostport serverdat)))
     allfiles)
    res))
  (let* ((servinfodir (conc *toppath*"/.servinfo")))
    (if (not (file-exists? servinfodir))
	(create-directory servinfodir))
    (let* ((allfiles    (glob (conc servinfodir"/*")))
	   (res         (make-hash-table)))
      (for-each
       (lambda (f)
	 (let* ((hostport  (pathname-strip-directory f))
		(serverdat (server:logf-get-start-info f)))
	   (hash-table-set! res hostport serverdat)))
       allfiles)
      res)))

;; oldest server alive determines host then choose random of youngest
;; five servers on that host
;;
;; mode:
;;   best - get best server (random of newest five)
;;   home - get home host based on oldest server
489
490
491
492
493
494
495


496

497
498
499
500
501
502
503
491
492
493
494
495
496
497
498
499

500
501
502
503
504
505
506
507







+
+
-
+







			  
	    (else
	     (debug:print 0 *default-log-port* "ERROR: invalid command "mode)
	     #f)))
	(begin
	  (server:run areapath)
	  (thread-sleep! 3)
	  (case mode
	    ((homehost) (cons #f #f))
	  #f))))
	    (else	#f))))))

	  
;; kind start up of server, wait before allowing another server for a given
;; area to be launched
;;
(define (server:kind-run areapath)
  ;; look for $MT_RUN_AREA_HOME/logs/server-start-last