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: | Re: Forking EPICS processes |
From: | Michael Davidsaver via Tech-talk <tech-talk at aps.anl.gov> |
To: | Grzegorz Kowalski <grzegorz.kowalski at ess.eu> |
Cc: | tech-talk at aps.anl.gov |
Date: | Tue, 4 Feb 2025 11:00:34 -0800 |
On 2/4/25 05:24, Grzegorz Kowalski via Tech-talk wrote:
Hello, I'm working on a multiprocess application using EPICS. My main process only reads the configuration and spins up child processes where EPICS is actually used. However, when forking I get this warning: Warning: Undefined Behavior! Detected use of epicsThread from child process after fork() Is there a way to avoid starting any epicsThreads in the main process and only do so in a child process that needs them?
To answer this, we would have to know more about your application. Which of the Base libraries you are loading, and how. What calls are made... If your code is linked as a single executable, I would suggest loading that executable in GDB add setting a break point for epicsThreadInit() to see how it is called. for reference:https://urldefense.us/v3/__https://github.com/epics-base/epics-base/issues/211__;!!G_uCfscf7eWS!bgAMhJAZ5CmlyLqDgEKwh4Qx7DDYbD_sG0F7J2uxlHJIvbJVbDD4dU4t-Oc9HgqpFZ10C66zKCweiBEs0DLH8R_aJQ$