Commit Graph

28 Commits

Author SHA1 Message Date
7a1f5b4ae1
FIX: unsubscribe participant from all events on disconnect 2023-07-03 12:35:53 +02:00
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
4f7f58a60c
ADD: Adds class function to participant to disconnect itself from the event manager. 2022-11-01 20:06:38 +01:00
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
01b2d3cd0d
ADD: Adds class comments for Event, Manager and Participant. 2022-09-22 13:39:33 +02:00
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
5c2fc37748
ADD: Adds comment to processConnections_ class function of the manager 2022-08-30 15:12:31 +02:00
1ed68d302d
FIX: fixes spelling error in variablename participants_ (list of connected participants in the manager). 2022-08-30 12:43:42 +02:00
92975e8349
FIX: fixed deadlock when participant connects another one 2022-02-19 16:06:49 +01:00
c2a609c913
ADD: support disable scheduling by manager 2022-02-19 12:32:25 +01:00
2141eb0c61
FIX: fixed missing doxygen comment 2022-02-19 12:28:19 +01:00
b79a67b596
ADD: assign a unique id to each connecting participant 2022-02-19 12:26:19 +01:00
89f13445ba
ADD: protect eventMap with mutex 2022-02-18 22:49:09 +01:00
e7d90d0c87
ADD: added method to not schedule a participant anymore 2022-02-18 22:02:31 +01:00
03d9f5537d
FIX: fixed missing algorithm include 2021-11-30 14:04:44 +01:00
9074fe3631
FIX: use unique object lib name 2021-10-25 23:29:48 +02:00
9808646bac
FIX: only add tests if tests are enabled 2021-10-25 23:28:33 +02:00
a0d174df08
ADD: add participant to a list on connect 2021-08-16 20:20:01 +02:00
e7b1eeeaa1
ADD: check for timeout when waiting for event 2021-08-16 20:12:05 +02:00
789ce929a4
ADD: method to wait for new event with timeout 2021-08-16 20:07:07 +02:00
8f78070770
ADD: support connecting additonal participants from participant 2021-08-15 20:53:45 +02:00
437feb597d
FIX: added missing method disconnect 2021-08-15 20:53:23 +02:00
9a0efd0b62
ADD: improved calling interfacce 2021-08-04 12:04:30 +02:00
e06a5b9be5
FIX: fixed license in README 2021-08-04 09:56:32 +02:00
2c1b0f4c28
ADD: first version 2021-08-04 09:53:57 +02:00
7759fae428
ADD: checkout correct submodule version 2021-08-04 09:52:54 +02:00
e8568a48e5
ADD: added Catch2 as submodule for testing 2021-08-04 09:45:34 +02:00
7fe3aba11d
ADD: initial commit 2021-08-04 09:44:57 +02:00