Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 488906 | Differences between
and this patch

Collapse All | Expand All

(-)a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js (-18 / +26 lines)
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
    	/**

Return to bug 488906