43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
;; N A N O M S G S E R V E R
;;======================================================================
(defstruct nmsg
(conn #f)
(hosts (make-hash-table))
pkt
(pktspec '((server (hostname . h)
(port . p)
(pid . i)
)))
(mutex (make-mutex))
)
;; make it a global
(define *nmsg-conndat* (make-nmsg))
;; get a port
;; start the nmsg server
;; look for other servers
;; contact other servers and compile list of servers
;; there are two types of server
;; main servers - dashboards, runners and dedicated servers - need pkt
;; passive servers - test executers, step calls, list-runs - no pkt
|
|
<
<
<
|
>
>
>
>
|
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
;; N A N O M S G S E R V E R
;;======================================================================
(defstruct nmsg
(conn #f)
(hosts (make-hash-table))
pkt
pktspec
(mutex (make-mutex))
)
;; make it a global
(define *nmsg-conndat* (make-nmsg))
(nmsg-pktspec-set! *nmsg-conndat*
`((server (hostname . h)
(port . p)
(pid . i)
)))
;; get a port
;; start the nmsg server
;; look for other servers
;; contact other servers and compile list of servers
;; there are two types of server
;; main servers - dashboards, runners and dedicated servers - need pkt
;; passive servers - test executers, step calls, list-runs - no pkt
|
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
(if (eq? server-type 'main)
(nmsg-pkt-set! *nmsg-conndat*
(pkts:write-alist->pkt
pktdir
`((hostname . ,(get-host-name))
(port . ,port-num)
(pid . ,(current-process-id)))
pktspec)))
(nmsg-conn-set! *nmsg-conndat* nmsg-conn)
(mutex-unlock! (nmsg-mutex *nmsg-conndat*))
))
;;======================================================================
;; S U P P O R T F U N C T I O N S
;;======================================================================
;; if a server is either running or in the process of starting call client:setup
;; else return #f to let the calling proc know that there is no server available
;;
|
|
>
>
|
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
(if (eq? server-type 'main)
(nmsg-pkt-set! *nmsg-conndat*
(pkts:write-alist->pkt
pktdir
`((hostname . ,(get-host-name))
(port . ,port-num)
(pid . ,(current-process-id)))
pktspec: pktspec
ptype: 'server)))
(nmsg-conn-set! *nmsg-conndat* nmsg-conn)
(mutex-unlock! (nmsg-mutex *nmsg-conndat*))
))
;;======================================================================
;; S U P P O R T F U N C T I O N S
;;======================================================================
;; if a server is either running or in the process of starting call client:setup
;; else return #f to let the calling proc know that there is no server available
;;
|