diff --git a/agent/agentcontainers/api.go b/agent/agentcontainers/api.go index 26ebafd660fb1..b853c865c8813 100644 --- a/agent/agentcontainers/api.go +++ b/agent/agentcontainers/api.go @@ -1002,6 +1002,15 @@ func (api *API) CreateDevcontainer(workspaceFolder, configPath string, opts ...D logger.Info(ctx, "devcontainer created successfully") + // Ensure the container list is updated immediately after creation. + // This makes sure that dc.Container is populated before we acquire + // the lock avoiding a temporary inconsistency in the API state + // where status is running, but the container is nil. + if err := api.RefreshContainers(ctx); err != nil { + logger.Error(ctx, "failed to trigger immediate refresh after devcontainer creation", slog.Error(err)) + return xerrors.Errorf("refresh containers: %w", err) + } + api.mu.Lock() dc = api.knownDevcontainers[dc.WorkspaceFolder] // Update the devcontainer status to Running or Stopped based on the @@ -1020,13 +1029,6 @@ func (api *API) CreateDevcontainer(workspaceFolder, configPath string, opts ...D api.knownDevcontainers[dc.WorkspaceFolder] = dc api.mu.Unlock() - // Ensure an immediate refresh to accurately reflect the - // devcontainer state after recreation. - if err := api.RefreshContainers(ctx); err != nil { - logger.Error(ctx, "failed to trigger immediate refresh after devcontainer creation", slog.Error(err)) - return xerrors.Errorf("refresh containers: %w", err) - } - return nil } pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy