Hi, Andrew,
Andrew Johnson wrote:
Andrew Johnson wrote:
**************
Modified
**************
# source files
(18) base-3.14.9/src/rsrv/camsgtask.c
Destroy client connections when the IOC is SLAVE.
Jeff Hill may wish to use a slightly different approach to implementing
this functionality.
It would be better if Jeff Hill can implement it.
(19) base-3.14.9/src/rsrv/caservertask.c
Register CAS-TCP task at RMT. Stop responding the client connection
request when the IOC is SLAVE.
The #ifndef vxWorks block will not be accepted.
We will remove this block and change the relevant codes.
The changes here that provide the ability to stop CA server tasks
represent functionality that should be part of Base, although Jeff
Hill may want a different implementation.
The code that registers the CA server tasks with the RMT should be
replaced with a call through a global function pointer that the RMT
initialization code can set before iocInit(). By removing any need
for the rsrv code to perform the registration itself this also drops
the requirement for epicsFindSymbol() and for the rmtDrvIf.h header to
be included in Base.
We agree in changing the registering like proposed by you. Using a
global variable is a better idea. This will also help to make RMT more
independent from EPICS. We will change this. Does anyone has a
suggestion where to place the variable definition?
Each thread has to register in RMT if it should be controlled by RMT.
The way we did it is to call the rmtRegister function in the init-part
of the individual thread. Each instance must provide an entry table and
call rmtRegister with this table address. The functions provide the API
for RMT and should be defined in the module of controlled thread. If the
IOC is not redundant, the global function-pointer variable is NULL and
registration is not done. The allocation of the entry-table can also be
omitted in this case. We could change the code in this way.
So in our opinion rmtDrvIf.h should be included into all these modules
which contain thread code that needs to be registered, because it
describes the API to RMT.
(20) base-3.14.9/src/rsrv/cast_server.c
Inactivate CAS-UDP task when the IOC is SLAVE.
(21) base-3.14.9/src/rsrv/online_notify.c
Inactivate CAS-beacon task when the IOC is SLAVE.
Jeff Hill may wish to use a slightly different approach to implementing
this functionality.
It would be better if Jeff Hill can implement them.
**************
Added
**************
(2) base-3.14.9/src/rsrv/rmtDrvIf.h
The head file for RMT driver interface.
This header is not required if the task registration code is moved into
the redundancy application and hooked into the IOC by setting a global
function pointer before iocInit().
See above.
- Andrew
Bernd Schoeneburg and Gongfa Liu
--
----------------------------------------------------------
Gongfa Liu MKS-2, DESY
phone: +49-40-8998-1642 Notkestr. 85
fax: +49-40-8998-4388 22607 Hamburg
e-mail: [email protected] Germany
----------------------------------------------------------
- References:
- Redundancy Patch: rsrv Andrew Johnson
- Re: Redundancy Patch: rsrv Andrew Johnson
- Navigate by Date:
- Prev:
Re: Redundancy Patch: iocsh Liu, Gongfa
- Next:
Re: Redundancy Patch: iocsh Andrew Johnson
- Index:
2002
2003
2004
2005
2006
<2007>
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: Redundancy Patch: rsrv Andrew Johnson
- Next:
Redundancy Patch: makeBaseApp Andrew Johnson
- Index:
2002
2003
2004
2005
2006
<2007>
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|