On Dec 4, 2007, at 19:32 , J. Lewis Muir wrote:
Your example works for me with t...
* Red Hat Enterprise Linux WS release 3 (Taroon Update 9)...
Test host either RedHat Enterprise Linux Client release 5.1 with
kernel 2.6.18-53.el5 and g++ (GCC) 4.1.2 20070626 (Red Hat 4.1.2-14),
or the older Red Hat Enterprise Linux AS release 4 (Nahant Update 4) with
kernel 2.6.9-42.EL and g++ (GCC) 3.4.6 20060404 (Red Hat 3.4.6-3).
Both are single-core CPUs.
Found an older computer:
RedHat Enterprise Linux AS release 3 (Taroon Update 2),
kernel 2.4.21-15ELsmp, g++ 3.2.3
Still errors in channel creation after destroying the context
and then creating a new one, but instead of
"pthread_create error Invalid argument"
I get
"pthread_attr_setschedparam error Invalid argument"
with that setup.
Also used EPICS base R3.14.9 instead of R3.14.8.2.
Same difference.
... could change your dispose() method calls to destroy().
Since dispose() calls destroy() and catches any exception and discards it, you may not be seeing an exception that could help with debugging.
Good idea in general, I'll do that from now on, but no difference in this matter.
... event dispatcher ....
No difference between the Queued and DirectEventDispatcher.
==>
I gather the variations of this problem are caused
by different pthread implementations.
Meanwhile, a usable workaround for me is to keep JCA context open.
Closing channels and opening different ones is OK,
but switching from CAJ to JCA requires a complete application restart.
Thanks,
-Kay