EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024  Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: epicsThread warnings
From: Mark Rivers via Core-talk <[email protected]>
To: "'Konrad, Martin'" <[email protected]>
Cc: "[email protected]" <[email protected]>
Date: Fri, 10 Jan 2020 20:25:12 +0000
Michael wrote:

> I guess "thread" has type 'class epicsThread' which must at some point be destroyed.

Yes, it is type 'class epicsThread'.  

> Are you doing this explicitly w/ epicsThread::exitWait() or implicitly via ~epicsThread?

Martin wrote:
> I guess ~callbackThread() is not being called. Here is the code:

This is my destructor.
callbackThread::~callbackThread()
{
    shutdown.signal();
    thread.exitWait();
}

However, the callbackThread object is only destroyed when the asynPortDriver object itself is destroyed.  

These messages happen at iocInit, when I have just created the asynPortDriver object, not when it is being destroyed.

I don't actually ever delete the asynPortDriver object, so I never call the callbackThread destructor.

Martin, you actually wrote all of this code with the callbackThread object 9 months ago.  I have not seen these messages until base 7.0.3.1 and I only see them on vxWorks.

I had another issue with thread joining on vxWorks, which Andrew found was a bug in 7.0.3.1.  Could this also be a bug, either the same one or another one?

Thanks,
Mark


-----Original Message-----
From: Konrad, Martin <[email protected]> 
Sent: Friday, January 10, 2020 1:59 PM
To: Mark Rivers <[email protected]>
Cc: [email protected]
Subject: Re: epicsThread warnings

Hi Mark,> Am I doing something wrong?  If not why am I getting those
messages?I guess ~callbackThread() is not being called. Here is the code:

https://github.com/epics-modules/asyn/blob/master/asyn/asynPortDriver/asynPortDriver.cpp#L916-L920
https://github.com/epics-modules/asyn/blob/master/asyn/asynPortDriver/asynPortDriver.cpp#L3795

Did you forget to destroy your asynPortDriver object?

-Martin

-- 
Martin Konrad
Facility for Rare Isotope Beams
Michigan State University
640 South Shaw Lane
East Lansing, MI 48824-1321, USA
Tel. 517-908-7253
Email: [email protected]

References:
epicsThread warnings Mark Rivers via Core-talk
Re: epicsThread warnings Konrad, Martin via Core-talk

Navigate by Date:
Prev: Re: epicsThread warnings Konrad, Martin via Core-talk
Next: Re: epicsThread warnings Konrad, Martin via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
Navigate by Thread:
Prev: Re: epicsThread warnings Konrad, Martin via Core-talk
Next: Re: epicsThread warnings Konrad, Martin via Core-talk
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  <20202021  2022  2023  2024 
ANJ, 10 Jan 2020 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·