Branch data Line data Source code
1 : : /* SPDX-FileCopyrightText: Copyright 2026 Cozens Software Solutions Limited
2 : : * SPDX-License-Identifier: PolyForm-Noncommercial-1.0.0 OR LicenseRef-PolyForm-Internal-Use-1.0.0 OR LicenseRef-COSOSO-Commercial
3 : : */
4 : :
5 : : #include "SolidSyslogConfigLock.h"
6 : :
7 : : #include <stddef.h>
8 : :
9 : 255386 : static void ConfigLock_NoOp(void* context)
10 : : {
11 : : (void) context;
12 : 255386 : }
13 : :
14 : : static SolidSyslogConfigLockFunction ConfigLock_Lock = ConfigLock_NoOp;
15 : : static SolidSyslogConfigLockFunction ConfigLock_Unlock = ConfigLock_NoOp;
16 : : static void* ConfigLock_Context = NULL;
17 : :
18 : : // NOLINTBEGIN(bugprone-easily-swappable-parameters) -- deliberate pair API: lock and unlock are installed together and conceptually inseparable; matches SolidSyslog_SetErrorHandler's pair shape
19 : 850 : void SolidSyslog_SetConfigLock(
20 : : SolidSyslogConfigLockFunction lockFn,
21 : : SolidSyslogConfigLockFunction unlockFn,
22 : : void* context
23 : : )
24 : : // NOLINTEND(bugprone-easily-swappable-parameters)
25 : : {
26 : 850 : ConfigLock_Context = context;
27 [ + + ]: 850 : if (lockFn == NULL)
28 : : {
29 : 678 : ConfigLock_Lock = ConfigLock_NoOp;
30 : : }
31 : : else
32 : : {
33 : 172 : ConfigLock_Lock = lockFn;
34 : : }
35 [ + + ]: 850 : if (unlockFn == NULL)
36 : : {
37 : 678 : ConfigLock_Unlock = ConfigLock_NoOp;
38 : : }
39 : : else
40 : : {
41 : 172 : ConfigLock_Unlock = unlockFn;
42 : : }
43 : 850 : }
44 : :
45 : 127940 : void SolidSyslog_LockConfig(void)
46 : : {
47 : 127940 : ConfigLock_Lock(ConfigLock_Context);
48 : 127940 : }
49 : :
50 : 127940 : void SolidSyslog_UnlockConfig(void)
51 : : {
52 : 127940 : ConfigLock_Unlock(ConfigLock_Context);
53 : 127940 : }
|