You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Starting and initializing a GLSP is currently done in the diagram loader
The loader will start and initialize the GLSPClient in its initialize phase
In addition, it is also possible to preinitialize the Client in an early step and pass an already running and initialized client to the diagram loader (like its e.g. done in the Theia integration)
To easily enable this behavior the start and initializeServer methods of the default implementations are designed in a way so that consecutive calls after the initial calls have not effect or return the cached result from the first call.
In theory this works well, but there are certain cases were this behavior could fail:
Invoking start or initializeServer again while the previous/first request/promise is still resolving does not work as expected.
For start in this a resolved promise is returned immediately. This indicates to the awaiting party that start has finished and the client is ready, but since the inital promise is still resolving the client is still in Starting state.
For initializeServer in this case a second initializeRequest will be sent to the server. This should not happen instead the currently pending promise should be returned.
The text was updated successfully, but these errors were encountered:
Starting and initializing a GLSP is currently done in the diagram loader
initialize
phaseTo easily enable this behavior the
start
andinitializeServer
methods of the default implementations are designed in a way so that consecutive calls after the initial calls have not effect or return the cached result from the first call.In theory this works well, but there are certain cases were this behavior could fail:
Invoking
start
orinitializeServer
again while the previous/first request/promise is still resolving does not work as expected.For
start
in this a resolved promise is returned immediately. This indicates to the awaiting party that start has finished and the client is ready, but since the inital promise is still resolving the client is still inStarting
state.For
initializeServer
in this case a second initializeRequest will be sent to the server. This should not happen instead the currently pending promise should be returned.The text was updated successfully, but these errors were encountered: