2e77bc8cc1
improve atExit debugging
2025-03-05 11:21:19 +01:00
ea7459084e
Merge remote-tracking branch 'github/noreturn' into PSI-7.0
2025-03-04 17:55:32 +01:00
ddc49e9f79
Merge remote-tracking branch 'github/epicsExportAddress' into PSI-7.0
2025-03-04 17:55:15 +01:00
12144fe267
Merge remote-tracking branch 'github/RuntestArchs' into PSI-7.0
2025-03-04 17:49:04 +01:00
c5315d95b8
no longer need extern "C" { } around epicsExport macros
2025-03-04 17:45:04 +01:00
74d231b04f
decorate functions that do not return
2025-03-04 14:41:05 +01:00
23521e0a08
Merge remote-tracking branch 'github/fdManager_using_poll' into PSI-7.0
2025-03-03 17:20:13 +01:00
55791ef470
Merge branch 7.0.9 into PSI-7.0
2025-03-03 17:19:23 +01:00
7b2fb669ec
Merge remote-tracking branch 'xiaoqiang/7.0' into PSI-7.0
2025-03-03 17:14:20 +01:00
312a602952
support CROSS_COMPILER_RUNTESTS_ARCHS other than RTEMS
2025-03-03 14:11:45 +01:00
Michael Davidsaver
7384351181
clarify cantProceed() message
2025-02-18 07:30:51 -08:00
9c1334ae15
silence Codacy warning
2025-02-10 08:47:59 +01:00
Michael Davidsaver
9481deacb0
fdManagerTest: quiet codacy warnings
2025-02-10 08:47:59 +01:00
8f1a3888c6
cleanup coding style in fdManager
2025-02-10 08:47:59 +01:00
c9183b5241
fdManager: filter poll flags for Window's sake
2025-02-10 08:47:59 +01:00
c3f57ee818
make fdManagerPrivate::fdReg volatile to avoid codacy warning
2025-02-10 08:47:59 +01:00
27f4261dfb
use smart pointers in fdManager
2025-02-10 08:47:59 +01:00
5eb9997791
fix codacy warning: make fdManagerPrivate constructor explicit
2025-02-10 08:47:59 +01:00
bfc2f832ec
fdManager uses poll() on Darwin too
2025-02-10 08:47:59 +01:00
f09b235fce
Keep implementation details of fdManager out of header file
2025-02-10 08:47:59 +01:00
ece031c88b
fdManager use std::vector
2025-02-10 08:47:59 +01:00
cbbbd67843
fdManager uses poll() on Windows and RTEMS too
...
RTEMS needs to use the "new" network stack
Windows has poll since Vista
Don't use poll on cygwin: it emulates poll() using select().
2025-02-10 08:47:59 +01:00
57c0295024
fdManager changed to use poll()
...
The implementation using select() limits file desciptors to FD_SETSIZE,
typically 1024 on Linux. This number is too low for some applications,
for example for the CA gateway.
Therefore, Linux builds use poll() instead.
2025-02-10 08:47:59 +01:00
Michael Davidsaver
8f77e941c7
add fdManager test
2025-02-10 08:47:59 +01:00
Michael Davidsaver
c76395abc6
remove fdmgrTest
...
Not a unittest, and not functional.
2025-02-10 08:47:59 +01:00
Michael Davidsaver
1d19ba4cc2
doc and log for *MustSucceed()
...
Replace the "never returns NULL." statement which is
manifestly not true.
2025-02-07 09:09:22 -08:00
JJL772
144f9756ea
Add iocshSetError in a bunch of places
2025-02-05 10:16:16 -06:00
DW
48eed22f3b
check IOCSH_STARTUP_SCRIPT before set
2025-02-05 10:03:35 -06:00
Michael Davidsaver
e4ad4becde
rationalize osdMutex
...
Avoids split allocation.
Eliminates special case free-list.
win32: eliminate pre-XP
rtems-score: eliminate non-fast
2024-12-29 16:35:26 -08:00
Jeremy Lorelli
721e9cc3a7
Add ABORT_ON_ASSERT flag to CONFIG_SITE
...
This flag causes EPICS to call abort() on assertion failures rather than
suspend the executing thread. With the epicsThreadSuspendSelf() behavior,
an IOC can end up in a difficult to detect error state where one or more
threads has essentially crashed due to an assertion failure.
This also matches the C behavior of assert(3)
2024-12-29 16:34:10 -08:00
Jeremy Lorelli
333be085c0
Fix compile error in tsSLList.h
2024-12-28 12:40:27 -08:00
b53505d339
Merge branch '7.0' into PSI-7.0
2024-12-05 16:58:15 +01:00
Chris Johns
594e5ee9db
rtems: Set the name of EPICS threads so RTEMS commands report the name
...
Use the NP POSIX call pthread_setname_np to set the POSIX thread name.
2024-10-31 16:21:49 -05:00
Chris Johns
135193c4bd
rtems: Fix shell networking commands
...
This patch cleans up the shell defines for the libbsd and legacy
network stack shell commands.
The top and rtems shell commands have been added.
2024-10-31 16:21:49 -05:00
Chris Johns
9d65da5c61
rtems: Fix rtems_bsdnet_bootp_server_address decl with RTEMS_LEGACY_STACK
...
The legacy stack provides this variable and this decl clashed. This was
seen before now due to the link order of libraries.
2024-10-31 16:21:49 -05:00
Chris Johns
83cbf8a4c7
freebsd: Add support for x86 and amd64 builds
...
Use the OS compiler, ie cc and c++.
2024-10-31 16:16:45 -05:00
Michael Davidsaver
f6cd43b7cc
asTrap serverSpecific is dbChannel
...
Save/restore dbAddr::pfield around callbacks to
avoid corruption if CB forgets to restore.
Need to peak at dbChannel.h during libCom build.
So generate dbCoreAPI.h early, and add extra
-I to source location when compiling dbTrapWrite.c
2024-10-31 12:30:15 -05:00
Michael Davidsaver
152d306ad8
avoid UB with self pthread_join()
2024-10-02 09:22:00 -05:00
Michael Davidsaver
012139638d
posix: epicsThreadCreateOpt() avoid leak of joinable on EPERM
...
On a system where RT priorities have been probed.
When creating a joinable thread, but still fails
with EPERM, the first epicsThreadOSD was leaked.
2024-10-02 09:22:00 -05:00
Érico Nogueira
8045770751
libCom: don't use std::unexpected in epicsThread.
...
Besides being deprecated in C++11 and removed in C++17, the intended use
case for this was always wrong, since std::unexpected() is called by the
C++ runtime when a function throws an exception that was not specified
in its "dynamic exception specification", which is different from an
exception thrown by user code which wasn't caught [1,2]. Using abort()
keeps the same behavior, but with the intended semantics.
We don't use std::abort() to simplify backwards compatibility.
[1] https://github.com/epics-base/epics-base/issues/343
[2] https://en.cppreference.com/w/cpp/error/unexpected
2024-09-09 07:27:32 -07:00
4af01ed26a
Merge branch '7.0' into PSI-7.0
2024-09-06 14:55:12 +02:00
Chris Johns
c5f5e4e508
rtems: Allow site local override of the default tick period
...
Add to configure/CONFIG_SITE.local:
OP_SYS_CFLAGS += -DCONFIGURE_MICROSECONDS_PER_TICK=1000
2024-09-04 09:59:13 -05:00
Freddie Akeroyd
dd154180bf
Avoid isnan/isinf redefine in c++ on VS2013 and above
2024-09-04 09:48:03 -05:00
Freddie Akeroyd
574fe116fc
protect isnan/isinf define on c++
2024-09-04 09:48:03 -05:00
d67036fcc0
Merge branch 'aliases' into PSI-7.0
2024-08-26 16:37:57 +02:00
Michael Davidsaver
057eb87101
readline: only keep history for interactive session
2024-08-21 09:36:39 -05:00
5930e8e2e4
time_t has 64 bit o 64 bit architectures
2024-08-09 11:44:26 +02:00
03f17a08c3
Merge branch '7.0' into PSI-7.0
2024-08-07 17:30:04 +02:00
Michael Davidsaver
6ca716a77f
iocsh: add more iocshSetError()
2024-06-11 13:52:03 -07:00
Michael Davidsaver
77490d4939
space in errPrintf() output
2024-06-11 11:14:07 -07:00