Skip to content
Snippets Groups Projects
user avatar
ben.franksen authored
This avoids a race condition when creating the global progList (in
seq_prog.c) and also avoids code duplication. The global variables in
seq_prog.c have been removed. Instead we extend the sequencer program
list in seqCommands.c so that for each program it also stores a list
of program instances, each one protected by a mutex. Access to this
list is restricted to a single generic traversal procedure which
automatically applies the lock around each call to the supplied
traversee. Since the program list in seqCommands.c is created before
multithreading starts there is no race condition.

Also added an int return value to the traversees, to indicate whether
traversal is supposed to stop (TRUE) or continue (FALSE).
91847eaa
History
You are looking at the EPICS State Notation Language compiler
and runtime sequencer.

For more information see the .txt files under documentation:

Introduction.txt
   What all this is about, release notes, and other trivia
Installation.txt
   How to download, build, etc
Tutorial.txt
   Gentle introduction to SNL, some (sloppy) semantics
Compiling.txt
   All about snc, the SNL compiler
Using.txt
   How to create a working SNL program
Reference.txt
   SNL syntax and built-in procedures
PV-API.txt
   Details about the PV API
Examples.txt
   Annotated example programs