Commit Graph

32 Commits

Author SHA1 Message Date
Dominik Meyer 91ef7ad770
FIX: fixed empty bug
continuous-integration/drone Build is passing Details
2024-01-16 12:41:45 +01:00
Dominik Meyer 0198266526
FIX: removed unnecessary atomic 2024-01-16 12:27:12 +01:00
Dominik Meyer 22ff983817
FIX: test if thread is joinable before join 2024-01-16 12:25:53 +01:00
Dominik Meyer caa13b0159
ADD: add CI/CD flow
continuous-integration/drone Build encountered an error Details
2023-09-04 21:50:56 +02:00
Dominik Meyer 7a1f5b4ae1
FIX: unsubscribe participant from all events on disconnect 2023-07-03 12:35:53 +02:00
Dominik Meyer 38c69d8da1
FIX: subscribing when manager is unset
One feature added to EventManager has been disconnecting
a participant at runtime. Unfortunatly, then the
manager of this participant is set to nullptr using
the setManager method. But this method also subscribes to the
shutdown event afterwords. This commit checks if the manager
is nullptr and ignore subscribing in that case.
2023-07-03 12:23:04 +02:00
Christina Sander 4f7f58a60c
ADD: Adds class function to participant to disconnect itself from the event manager. 2022-11-01 20:06:38 +01:00
Christina Sander 3dc92bde5f
MOD: Replaces the queues connectionQueue_ and disableSchedulingQueue with a command queue where different commands can be queued for later processing. 2022-09-22 18:06:51 +02:00
Christina Sander 01b2d3cd0d
ADD: Adds class comments for Event, Manager and Participant. 2022-09-22 13:39:33 +02:00
Christina Sander d268273e3c
FIX: fixes deadlock bug of class function to disable scheduling
When calling _diableScheduling of the participant to enable the
own participant for scheduling by the manager the process runned in a
deadlock.

Summary:
1. manager locks mutex mutexSchedulingParticipants_
2. calls schedule class function of participants in the
   schedulingParticipants_ list
3. there the _disableScheduling function is called by the participant
4. which calls the unschedule function of the manager
5. manager tries to lock mutexSchedulingParticipants_ which is already
   locked

Solution:
- this commit adds the following elements to the Manager class:
	1. disableScheduleQueue_
	2. mutexDisableScheduleQueue_
	3. processDisableScheduling_() ( like processConnections() )
- this commit changes the following functions of Manager class:
	1. unschedule( ... ) -> now adds given participant to
	   disableScheduleQueue
	2. scheduleProcess_() -> now also calls the class function
	   processDisableSchedulung_() after processConections_()
2022-08-30 15:12:51 +02:00
Christina Sander 5c2fc37748
ADD: Adds comment to processConnections_ class function of the manager 2022-08-30 15:12:31 +02:00
Christina Sander 1ed68d302d
FIX: fixes spelling error in variablename participants_ (list of connected participants in the manager). 2022-08-30 12:43:42 +02:00
Dominik Meyer 92975e8349
FIX: fixed deadlock when participant connects another one 2022-02-19 16:06:49 +01:00
Dominik Meyer c2a609c913
ADD: support disable scheduling by manager 2022-02-19 12:32:25 +01:00
Dominik Meyer 2141eb0c61
FIX: fixed missing doxygen comment 2022-02-19 12:28:19 +01:00
Dominik Meyer b79a67b596
ADD: assign a unique id to each connecting participant 2022-02-19 12:26:19 +01:00
Dominik Meyer 89f13445ba
ADD: protect eventMap with mutex 2022-02-18 22:49:09 +01:00
Dominik Meyer e7d90d0c87
ADD: added method to not schedule a participant anymore 2022-02-18 22:02:31 +01:00
Dominik Meyer 03d9f5537d
FIX: fixed missing algorithm include 2021-11-30 14:04:44 +01:00
Dominik Meyer 9074fe3631
FIX: use unique object lib name 2021-10-25 23:29:48 +02:00
Dominik Meyer 9808646bac
FIX: only add tests if tests are enabled 2021-10-25 23:28:33 +02:00
Dominik Meyer a0d174df08
ADD: add participant to a list on connect 2021-08-16 20:20:01 +02:00
Dominik Meyer e7b1eeeaa1
ADD: check for timeout when waiting for event 2021-08-16 20:12:05 +02:00
Dominik Meyer 789ce929a4
ADD: method to wait for new event with timeout 2021-08-16 20:07:07 +02:00
Dominik Meyer 8f78070770
ADD: support connecting additonal participants from participant 2021-08-15 20:53:45 +02:00
Dominik Meyer 437feb597d
FIX: added missing method disconnect 2021-08-15 20:53:23 +02:00
Dominik Meyer 9a0efd0b62
ADD: improved calling interfacce 2021-08-04 12:04:30 +02:00
Dominik Meyer e06a5b9be5
FIX: fixed license in README 2021-08-04 09:56:32 +02:00
Dominik Meyer 2c1b0f4c28
ADD: first version 2021-08-04 09:53:57 +02:00
Dominik Meyer 7759fae428
ADD: checkout correct submodule version 2021-08-04 09:52:54 +02:00
Dominik Meyer e8568a48e5
ADD: added Catch2 as submodule for testing 2021-08-04 09:45:34 +02:00
Dominik Meyer 7fe3aba11d
ADD: initial commit 2021-08-04 09:44:57 +02:00