Overview
Comment: | Partial update. Doesn't compile |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | v1.80-revolution-fixme |
Files: | files | file ages | folders |
SHA1: |
1afd10da9bf9d4d6fc029db446f1bee7 |
User & Date: | matt on 2023-11-27 10:46:41 |
Other Links: | branch diff | manifest | tags |
Context
2023-11-27
| ||
10:46 | Partial update. Doesn't compile Closed-Leaf check-in: 1afd10da9b user: matt tags: v1.80-revolution-fixme | |
2023-11-26
| ||
04:54 | Completed capture of server logic in graphviz file, regenerated manual. check-in: 68fc2bee9a user: matt tags: v1.80-revolution | |
Changes
Modified tcp-transportmod.scm from [659d1a2b4d] to [ba6e727718].
︙ | ︙ | |||
476 477 478 479 480 481 482 | ;; ;; This is the routine called in megatest.scm to start a server ;; ;; Server viability is checked in keep-running. Blindly start and run here. ;; (define (tt:start-server areapath run-id dbfname-in handler keys) (assert areapath "FATAL: areapath not provided for tt:start-server") | < < | < < < < < < | | | | | | | | | | | | | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | | | | 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 | ;; ;; This is the routine called in megatest.scm to start a server ;; ;; Server viability is checked in keep-running. Blindly start and run here. ;; (define (tt:start-server areapath run-id dbfname-in handler keys) (assert areapath "FATAL: areapath not provided for tt:start-server") (let* ((ttdat (make-tt areapath: areapath)) (dbfname (or dbfname-in (dbmod:run-id->dbfname run-id)))) (let* ((dbstruct (dbmod:open-dbmoddb areapath run-id dbfname (dbfile:db-init-proc) keys))) (tt-handler-set! ttdat (handler dbstruct)) (let* ((tcp-thread (make-thread (lambda () (tt:start-tcp-server ttdat)) ;; start the tcp-server which applies handler to incoming data "tcp-server-thread")) (run-thread (make-thread (lambda () (tt:keep-running ttdat dbfname dbstruct))))) (thread-start! tcp-thread) (thread-start! run-thread) (let* ((areapath (tt-areapath ttdat)) (nosyncdbpath (conc areapath"/.mtdb")) (servers ;; (tt:find-server areapath dbfname))) (tt:get-server-info-sorted ttdat dbfname))) ;; (host port startseconds server-id servinfofile) ;; contact servers via ping, if no response remove the .servinfo file (for-each (lambda (servdat) (match servdat ((host port startseconds server-id servinfofile) ;; ping ;; remove servinfofile if no response from ping ;; copied from keep-running (debug:print-info 0 *default-log-port* "I'm not the lead server: "servers) (let* ((leadsrv (car servers))) (match leadsrv ((host port startseconds server-id pid dbfname servinfofile) (let* ((result (tt:timed-ping host port server-id)) (res (car result)) (ping (cdr result))) (debug:print-info 0 *default-log-port* "Ping to "host":"port", with server-id "server-id ", and file "servinfofile" returned "res) (if res #f ;; not the server, but all good, want to exit (if (and (file-exists? servinfofile) (> (- (current-seconds)(file-modification-time servinfofile)) 30)) (begin ;; can't ping and file has been on disk 15 seconds, go ahead and try to remove it (debug:print-info 0 *default-log-port* "Removing apparently dead server info file: "servinfofile) (handle-exceptions exn (debug:print-info 0 *default-log-port* "Error removing server info file: "servinfofile) (delete-file* servinfofile) ) #t) ;; not the server but the server is not reachable ;; ;; this didn't seem to work, is port not available yet? (let loop ((count 0)) (if (tt-port ttdat) (begin (procinf-port-set! *procinf* (tt-port ttdat)) (procinf-dbname-set! *procinf* dbfname) (dbfile:with-no-sync-db nosyncdbpath (lambda (nsdb) (dbfile:insert-or-update-process nsdb *procinf*)))) |
︙ | ︙ |