|
Lines 132-137
Link Here
|
| 132 |
pendingStart.f = f; |
132 |
pendingStart.f = f; |
| 133 |
return; //don't queue start_server requests |
133 |
return; //don't queue start_server requests |
| 134 |
} |
134 |
} |
|
|
135 |
if(startCount > 0 && msg.args.initial) { |
| 136 |
return; |
| 137 |
} |
| 138 |
startCount++; |
| 135 |
ternReady = false; |
139 |
ternReady = false; |
| 136 |
} |
140 |
} |
| 137 |
if(ternReady || starting || msg.request === 'read') { //configuration reads can happen while the server is starting |
141 |
if(ternReady || starting || msg.request === 'read') { //configuration reads can happen while the server is starting |
|
Lines 165-171
Link Here
|
| 165 |
* TODO will need to listen to updated tern plugin settings once enabled to clear this cache |
169 |
* TODO will need to listen to updated tern plugin settings once enabled to clear this cache |
| 166 |
*/ |
170 |
*/ |
| 167 |
var contributedEnvs, |
171 |
var contributedEnvs, |
| 168 |
ternWorker; |
172 |
ternWorker, |
|
|
173 |
startCount = 0; |
| 169 |
|
174 |
|
| 170 |
var handlers ={ |
175 |
var handlers ={ |
| 171 |
'read': doRead, |
176 |
'read': doRead, |
|
Lines 178-184
Link Here
|
| 178 |
} |
183 |
} |
| 179 |
workerReady = true; |
184 |
workerReady = true; |
| 180 |
if (!pendingStart.msg || !pendingStart.msg.request){ |
185 |
if (!pendingStart.msg || !pendingStart.msg.request){ |
| 181 |
pendingStart.msg = {request: "start_server", args: {}}; //$NON-NLS-1$ |
186 |
pendingStart.msg = {request: "start_server", args: {initial: true}}; //$NON-NLS-1$ |
| 182 |
} |
187 |
} |
| 183 |
ternWorker.postMessage(pendingStart.msg, pendingStart.f); |
188 |
ternWorker.postMessage(pendingStart.msg, pendingStart.f); |
| 184 |
}, |
189 |
}, |
|
Lines 283-307
Link Here
|
| 283 |
* @since 10.0 |
288 |
* @since 10.0 |
| 284 |
*/ |
289 |
*/ |
| 285 |
function serverReady() { |
290 |
function serverReady() { |
| 286 |
ternReady = true; |
291 |
startCount--; |
| 287 |
// process all add/remove first |
292 |
if(startCount === 0) { |
| 288 |
for(var i = 0, len = modifyQueue.length; i < len; i++) { |
293 |
ternReady = true; |
| 289 |
var item = modifyQueue[i]; |
294 |
// process all add/remove first |
| 290 |
if(TRACE) { |
295 |
for(var i = 0, len = modifyQueue.length; i < len; i++) { |
| 291 |
console.log("clearing MODIFY queue: "+JSON.stringify(item.msg)); |
296 |
var item = modifyQueue[i]; |
|
|
297 |
if(TRACE) { |
| 298 |
console.log("clearing MODIFY queue: "+JSON.stringify(item.msg)); |
| 299 |
} |
| 300 |
ternWorker.postMessage(item.msg, item.f); |
| 292 |
} |
301 |
} |
| 293 |
ternWorker.postMessage(item.msg, item.f); |
302 |
modifyQueue = []; |
| 294 |
} |
303 |
// process remaining pending requests |
| 295 |
modifyQueue = []; |
304 |
for(i = 0, len = messageQueue.length; i < len; i++) { |
| 296 |
// process remaining pending requests |
305 |
item = messageQueue[i]; |
| 297 |
for(i = 0, len = messageQueue.length; i < len; i++) { |
306 |
if(TRACE) { |
| 298 |
item = messageQueue[i]; |
307 |
console.log("clearing MESSAGE queue: "+JSON.stringify(item.msg)); |
| 299 |
if(TRACE) { |
308 |
} |
| 300 |
console.log("clearing MESSAGE queue: "+JSON.stringify(item.msg)); |
309 |
ternWorker.postMessage(item.msg, item.f); |
| 301 |
} |
310 |
} |
| 302 |
ternWorker.postMessage(item.msg, item.f); |
311 |
messageQueue = []; |
| 303 |
} |
312 |
} |
| 304 |
messageQueue = []; |
|
|
| 305 |
} |
313 |
} |
| 306 |
|
314 |
|
| 307 |
/** |
315 |
/** |