Skip to content

Commit b5b9ce7

Browse files
committed
Ensure we only start one instance of OmniSharp server
1 parent 19b027b commit b5b9ce7

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

src/omnisharp/server.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,10 @@ export class OmniSharpServer {
250250
// --- start, stop, and connect
251251

252252
private async _start(launchTarget: LaunchTarget, options: Options): Promise<void> {
253+
if (this._state != ServerState.Stopped) {
254+
this.eventStream.post(new ObservableEvents.OmnisharpServerOnServerError("Attempt to start OmniSharp server failed because another server instance is running."));
255+
return;
256+
}
253257

254258
if (launchTarget.kind === LaunchTargetKind.LiveShare) {
255259
this.eventStream.post(new ObservableEvents.OmnisharpServerMessage("During Live Share sessions language services are provided by the Live Share server."));
@@ -498,6 +502,11 @@ export class OmniSharpServer {
498502
}
499503

500504
public async restart(launchTarget: LaunchTarget = this._launchTarget): Promise<void> {
505+
if (this._state == ServerState.Starting) {
506+
this.eventStream.post(new ObservableEvents.OmnisharpServerOnServerError("Attempt to restart OmniSharp server failed because another server instance is starting."));
507+
return;
508+
}
509+
501510
if (launchTarget) {
502511
await this.stop();
503512
this.eventStream.post(new ObservableEvents.OmnisharpRestart());

0 commit comments

Comments
 (0)