1994 1995 1996 1997 1998 1999 2000 2001 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 | 1994 1995 1996 1997 1998 1999 2000 2001 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: | StreamDevice problem |
From: | "Davis, Mark via Tech-talk" <[email protected]> |
To: | "[email protected]" <[email protected]> |
Date: | Tue, 8 Oct 2019 14:30:07 +0000 |
Having a bit of a problem with the StreamDevice interface that I am hoping someone can help with. I am trying to get a working build working on a machine running debian stretch (9.9). The version I am using is a copy of the latest on github, and I can get it to build, but when I run an IOC using the result something very odd is happening during the initialization of the objects for this library. By adding a printf() call to the loop in the StreamBusInterfaceRegistrarBase(const char* name) constructor in StreamBusInterface.cc, I can see that it is normally called once for 3 derived interfaces:
But for the build on my debian stretch machine, after these 3 calls occur, it is called again for the DebugInterface, which appears to cause an infinite loop (either stuck in the constructor, or calling it endlessly for the same interface.
If I move the "next = NULL;" statement to the end of the constructor, and add a check in the loop for a redundant call ("if *pr == this) return;", then I see that it is being called for the 1st 2 interfaces again, and it avoids the infinite loop, and the IOC processes the startup script, but the asyn connections for the StreamDevice interfaces never connect. Anyone have any ideas what I should be looking at to determine how/why this is happening? Mark Davis NSCL/FRIB |