4720b61c1f3c9db769f0e416250d43aaf3a4120e
The call to setThreadName() is moved to avoid a race condition that can happen with very short lived processes. If the process terminates very quickly e.g. is a google test runner or the msi.exe command called from a Makefile during a build, then very occasionally a crash can occur during process termination if setThreadName() when called from the newly created thread. This looks to be becauae the DLL it is trying to call gets unloaded between it getting a handle to the DLL and making the call. Moving the setThreadName() call to the creating thread avoids this problem. The issue was only ever seen with statically linked epics executables, I am unsure if the way a DLL based epics program unloads might avoid this, or just make it less likely but still possible. As mentioned above, the issue will only ever occur to threads that are created during process termination and so would not affect running IOCs
--------------------------------------------------------- EPICS Base - the central core of a control system toolkit --------------------------------------------------------- Copyright UChicago Argonne LLC, as Operator of Argonne National Laboratory. Copyright (c) 1991-2003 The Regents of the University of California, as Operator of Los Alamos National Laboratory. EPICS Base is distributed subject to a Software License Agreement found in the file LICENSE that is included with this distribution. --------------------------------------------------------- Installation and release information can be found in the various files in the documentation subdirectory. Additional information about EPICS including mailing list archives and subscription instructions, documentation and training materials, additional components, links to other websites etc. is available on the EPICS home page at https://epics.anl.gov/ $Format:%cD$ $Format:%H$ https://code.launchpad.net/epics-base
Description
See the PSI-* branches for releases including our PSI setup and modifications.
The branches without PSI prefix are original upstream.
https://github.com/epics-base/epics-base.git
107 MiB
Languages
C
65.7%
C++
21.3%
Perl
5.8%
HTML
3.4%
Makefile
1.6%
Other
2%