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 | 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 |
<== Date ==> | <== Thread ==> |
---|
Subject: | remnant errlog thread |
From: | Al Honey <[email protected]> |
To: | "'[email protected]'" <[email protected]> |
Date: | Thu, 10 Aug 2017 21:01:34 +0000 |
Hi I have a persistent task, which opens and closes connections to various IOCs (other services as well) per client requests. Seems that each open/close cycle causes another thread to be created and it never terminates – errlogThread. I suspect there is one more step I need to perform when ‘closing’ a connection. This the output from gdb for one of the remnant threads: #0 0x00007f122a317705 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/libpthread.so.0 #1 0x00007f1227ee8099 in condWait (mutexId=0x12c6300, condId=0x12c6328) at ../../../src/libCom/osi/os/posix/osdEvent.c:75 #2 epicsEventWait (pevent=0x12c6300) at ../../../src/libCom/osi/os/posix/osdEvent.c:137 #3 0x00007f1227ed269e in errlogThread () at ../../../src/libCom/error/errlog.c:491 #4 0x00007f1227ee5e6f in start_routine (arg=0x12ca420) at ../../../src/libCom/osi/os/posix/osdThread.c:385 #5 0x00007f122a313df5 in start_thread () from /lib64/libpthread.so.0 #6 0x00007f122950c1ad in clone () from /lib64/libc.so.6 Using R3.14.12.5 This is my process for opening a connection: ca_context_create ca_add_exception_event ca_add_fd_registration for each channel: ca_search_and_connect ca_add_masked_array_event This is my process for closing a connection: for each channel: ca_clear_event ca_clear_channel ca_flush_io ca_context_destroy What did I miss? Thanks for any help, Al |