Skip to content

[ophyd-async] Reconnect via connect(force_reconnect=True) + atexit shutdown #401

Description

@coretl

Rewritten — the Device.disconnect() proposal is dropped (0019 L168).

Scope

  • Reconnect = Device.connect(force_reconnect=True). The only disconnect we want is atexit, so the connector registers an atexit hook (Giles: "atexit is fine") plus explicit await connector.shutdown().
  • ControllerRunner (AttrW setpoint cache, native timestamps + severity, ControllerRunner #395) owns lifecycle incl. reconnect, so the connector defers to it.
  • (Optional/out-of-scope-first-cut) serve-transports-alongside-embed (decision 9): design the runner so a transport list can be added later — no work required here beyond not precluding it.

Acceptance

uv run --locked tox -e pre-commit,type-checking,tests green.

ADR: 0019
Parent: #388
Blocked by: #399

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions