-----Original Message-----
From: [email protected] [mailto:[email protected]]
On Behalf Of David Maden
Sent: Tuesday, January 22, 2008 1:16 AM
To: [email protected]
Subject: CA connection management - vxWorks
Hi,
I also have a CA connection management problem similar to the recent thread:
Re: CA connection management problem
but hopefully different enough to warrant a slightly different name.
I'm trying to convert a vxWorks channel access C program from EPICS 3.13.10
to 3.14.8. The program is intended to run once after iocInit and then exit.
I get an exception in ca_context_destroy if the channel connection times
out.
Reducing the program to its bare essentials, it does the following:
1) Set up ca context with preemptive callbacks enabled:
ca_context_create (ca_enable_preemptive_callback)
2) Call ca_create_channel specifying channel name and callback function.
3) Wait for callback function to get called:
If callback function is called, goto step 5.
If there is a time-out, go to step 4.
4) On time-out, call ca_context_destroy and return with error.
5) If callback function gets called, continue with calls
to ca_get, ca_pend_io, ca_context_destroy and return with success.
This runs fine if I specify a PV which is valid.
If I specify an invalid channel name, I get:
0x15d0250 (tShell): Unhandled C++ exception resulted
in call to terminate
The program runs fine under Linux. Is there some problem with
ca_context_destroy under vxWorks, which I couldn't find in the Channel
Access Reference Manuel or the tech-talk archives? I note, for example,
that snl programs under 3.14 are no longer able to exit. Is this related?
Regards, David
--
[email protected]
SLS Project