I have committed changes so that by default a record instance can have
multiple record process requesters.
This can be changed either when a record is initialized or dynamically
at run time.
To get the changes do a cvs update in javaIOC and CAJv4.
Allowing the change at run time was more difficult than I thought. What
I thought would take a few hours took a few days and required some
changes to the record processing interfaces and to the the scan field. I
also removed everything relating to selfProcess.
The field scan.selfProcess is replaced by scan.singleProcessRequester,
which is a boolean field with the default false.
This field can be modified dynamically. If the change is from false to
true and more than one requester is registered all registered requesters
are notified that they no longer have the ability to request processing.
A requester requests to become the record processor by calling
RecordProcess.queueProcessRequest. Thus requests are queued so that only
one requester at a time is the active processor.
See the package overview in org.epics.ioc.support for details.
The changes resulted in changes to all code that implemented
RecordProcess but NOT support code except dbLink and caLink.
I am now going to look at the messages about Event Subscriptions and
access security since last Friday.