133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
|
;; NOTE: we *have* a homehost record by now
((and (not (cdr (remote-hh-dat *runremote*))) ;; are we on a homehost?
(not (remote-conndat *runremote*))) ;; and no connection
(debug:print-info 12 *default-log-port* "rmt:send-receive, case 6 hh-dat: " (remote-hh-dat *runremote*) " conndat: " (remote-conndat *runremote*))
(mutex-unlock! *rmt-mutex*)
(tasks:start-and-wait-for-server (tasks:open-db) 0 15)
(let* ((cinfo (rmt:get-connection-info 0))
(transport (vector-ref cinfo 6))) ;; TODO: replace with tasks:server-dat-accessor-?? for transport
(remote-conndat-set! *runremote* cinfo) ;; calls client:setup which calls client:setup-http
(remote-transport-set! *runremote* transport))
(rmt:send-receive cmd rid params attemptnum: attemptnum))
;; all set up if get this far, dispatch the query
((cdr (remote-hh-dat *runremote*)) ;; we are on homehost
(mutex-unlock! *rmt-mutex*)
(debug:print-info 12 *default-log-port* "rmt:send-receive, case 7")
|
>
>
|
|
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
;; NOTE: we *have* a homehost record by now
((and (not (cdr (remote-hh-dat *runremote*))) ;; are we on a homehost?
(not (remote-conndat *runremote*))) ;; and no connection
(debug:print-info 12 *default-log-port* "rmt:send-receive, case 6 hh-dat: " (remote-hh-dat *runremote*) " conndat: " (remote-conndat *runremote*))
(mutex-unlock! *rmt-mutex*)
(tasks:start-and-wait-for-server (tasks:open-db) 0 15)
(let* ((cinfo (rmt:get-connection-info 0))
(transport (if cinfo
(vector-ref cinfo 6)
(server:get-transport)))) ;; TODO: replace with tasks:server-dat-accessor-?? for transport
(remote-conndat-set! *runremote* cinfo) ;; calls client:setup which calls client:setup-http
(remote-transport-set! *runremote* transport))
(rmt:send-receive cmd rid params attemptnum: attemptnum))
;; all set up if get this far, dispatch the query
((cdr (remote-hh-dat *runremote*)) ;; we are on homehost
(mutex-unlock! *rmt-mutex*)
(debug:print-info 12 *default-log-port* "rmt:send-receive, case 7")
|
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
|
(mutex-lock! *db-multi-sync-mutex*)
(set! *db-last-write* start-time) ;; the oldest "write"
(mutex-unlock! *db-multi-sync-mutex*)))))
res))
(define (rmt:send-receive-no-auto-client-setup connection-info cmd run-id params)
(let* ((run-id (if run-id run-id 0))
(res (handle-exceptions
exn
#f
(case (remote-transport *runremote*)
((http) (http-transport:client-api-send-receive run-id connection-info cmd params))
((rpc) (rpc-transport:client-api-send-receive run-id connection-info cmd params))
(else
(debug:print 0 *default-log-port* "ERROR: transport " (remote-transport *runremote*) " not supported (2)")
(exit))
))))
|
>
|
|
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
|
(mutex-lock! *db-multi-sync-mutex*)
(set! *db-last-write* start-time) ;; the oldest "write"
(mutex-unlock! *db-multi-sync-mutex*)))))
res))
(define (rmt:send-receive-no-auto-client-setup connection-info cmd run-id params)
(let* ((run-id (if run-id run-id 0))
(transport (or (remote-transport *runremote*) (server:get-transport)))
(res (handle-exceptions
exn
#f
(case transport
((http) (http-transport:client-api-send-receive run-id connection-info cmd params))
((rpc) (rpc-transport:client-api-send-receive run-id connection-info cmd params))
(else
(debug:print 0 *default-log-port* "ERROR: transport " (remote-transport *runremote*) " not supported (2)")
(exit))
))))
|