Megatest

Diff
Login

Differences From Artifact [b6b8a0ea46]:

To Artifact [d1560d8558]:


113
114
115
116
117
118
119
120

121
122
123
124
125
126
127
128

129
130
131
132
133
134
135
113
114
115
116
117
118
119

120
121
122
123
124
125
126
127

128
129
130
131
132
133
134
135







-
+







-
+







  ;;DOT   node [shape="box"];
  ;;DOT "rmt:send-receive" -> MUTEXLOCK;
  ;;DOT { edge [style=invis];"case 1" -> "case 2" -> "case 3" -> "case 4" -> "case 5" -> "case 6" -> "case 7" -> "case 8" -> "case 9" -> "case 10" -> "case 11"; }
  ;; do all the prep locked under the rmt-mutex
  (mutex-lock! *rmt-mutex*)

  ;; set up runremote record earlier than the loop below
  (if (not area-dat)                   ;; can remove this one. should never get here.         
  (if (not *runremote*)                   ;; can remove this one. should never get here.         
      (begin
	(set! *runremote* (create-remote-record))
	(let* ((server-info (remote-server-info *runremote*))) 
	  (if server-info
	      (begin
		(remote-server-url-set! *runremote* (server:record->url server-info))
		(remote-server-id-set! *runremote* (server:record->id server-info)))))  
	(set! area-dat *runremote*))) ;; new runremote will come from this on next iteration
	#;(set! area-dat *runremote*))) ;; new runremote will come from this on next iteration
    
  ;; 1. check if server is started IFF cmd is a write OR if we are not on the homehost, store in runremote
  ;; 2. check the age of the connections. refresh the connection if it is older than timeout-20 seconds.
  ;; 3. do the query, if on homehost use local access
  ;;
  (let* ((start-time    (current-seconds)) ;; snapshot time so all use cases get same value
         (areapath      *toppath*);; TODO - resolve from dbstruct to be compatible with multiple areas