2002 2003 2004 <2005> 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 | Index | 2002 2003 2004 <2005> 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: 3.14.8: blockingSockTest - assert() fails. |
From: | Ralph Lange <[email protected]> |
To: | Jeff Hill <[email protected]> |
Cc: | "'EPICS Core Talk'" <[email protected]> |
Date: | Wed, 09 Nov 2005 15:58:30 +0100 |
Your fix works perfectly. HP-UX returns: creek: .../base/3-14-X > bin/hpux-parisc/blockingSockTestHost ../blockingSockTest.cpp: server circuit was disconnected../blockingSockTest.cpp: client circuit socket recv() error was "Interrupted system call"
The local OS behaves like "esscimqi_socketSigAlarmRequired". The epicsSocketSystemCallInterruptMechanismQuery() function returns "esscimqi_socketSigAlarmRequired". while my Linux box says: aragon: .../base/3-14-X > bin/linux-x86/blockingSockTestHost ../blockingSockTest.cpp: server circuit was disconnected ../blockingSockTest.cpp: client circuit was disconnected The local OS behaves like "esscimqi_socketBothShutdownRequired". The epicsSocketSystemCallInterruptMechanismQuery() function returns "esscimqi_socketBothShutdownRequired". which is quite what I would expect these two to return. Thanks! Ralph Jeff Hill wrote:
Ralph, This test isnt quite the same as the others as it is documenting differences between the various OS implementations of sockets and testing how well we are able to deal with them. That test was written to document what is required to interrupt a thread blocking in socket recv() on the various OS. It looks like the code was presuming that a CA server was running on the local host, and would not work otherwise. There is also code there to startup a local server. I went ahead and instantiated that code and committed it. The test should run standalone now. Nevertheless... O strange behavior could result if a CA server is already running on the local host when the test starts. O strange behavior could result if the local os does not allow the process to exit if a thread is stil running when main exists (I didn't see any problems with this on linux or windows). Jeff