Skip to content
Commit 6301c853 authored by Jameson Rollins's avatar Jameson Rollins
Browse files

lock interaction with the CAS PV db

This is an attempt to circumvent the segfault race conditions we've been
seeing: https://alog.ligo-wa.caltech.edu/aLOG/index.php?callRep=40765

We add a lock to the driver, and wrap a lock around anything that calls
getParam, setParam, and updatePVs.  This should hopefully prevent any
contention between the main daemon thread, and any of the EPICS db interaction
happening in the CAS thread.

A new cas.get_many() method is added for the db to get all it's updates
in a single pass with only one acquistion of the lock.

We also move some MODE/MANAGER switching logic back in to the cas from the
db, since it was needlessly clunky to be jumping back and forth in an
attempt to keep the logic out of the cas.  The manager test needed to be
tweaked to fix the order of MANAGER/MODE updates, since now that those two
records are updated in the same updatePVs they sould always show up in the
same order, e.g. (MANAGER, MODE).
parent eac7425a
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment