Skip to content

LINDY PDU: race condition #8736

@Tom-Willemsen

Description

@Tom-Willemsen

As a reflectometry instrument scientist I would like code like the following to work:

g.cset("LINDY_A", 1)
g.cset("LINDY_B", 1)

Where LINDY_A and LINDY_B are two blocks pointing at the status of outputs A & B on the same LINDY ioc.

Currently this has a race condition in the device/ioc/firmware somewhere, which means that the first set is ignored.


A workaround is:

g.cset("LINDY_A", 1)
g.waitfor_time(seconds=5)
g.cset("LINDY_B", 1)

acceptance criteria

  • above race condition is solved and two consecutive csets work in sequence as expected

There is a "quick-and-easy" solution (@FreddieAkeroyd could you add a bit more detail pls) to add a delay in the db which may resolve this - try this first before debugging further. should be reproducable with an emulator.

discussed in planning 12/06/2025 at 00:12:00

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions