Provides an interface for a executing context, which asynchronously invokes Callable ([4] [func.wrap.func]) objects in a guaranteed thread-safe context. The execute(...) method in [SWS_CORE_00024] returns a ara::core::Future object to the caller for further result/error extraction or management of the asynchronous-context; the execute_oneway(...) method in [SWS_CORE_00025] imply fire-and-forget semantics and thus no asynchronous-context (ara::core::Future) is returned.
Literaturverzeichnis SWS Core: [4] ISO/IEC 14882:2014, Information technology – Programming languages – C++ – www.iso.org
Ermöglicht die asynchrone, thread-sichere Ausführung von aufrufbaren Objekten mit optionaler Rückgabe über Futures.
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 690890643de1HerkunftOffene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Ermöglicht die asynchrone, thread-sichere Ausführung von aufrufbaren Objekten mit optionaler Rückgabe über Futures.
Die Klasse ara::core::Executor stellt eine Schnittstelle zur asynchronen Ausführung von aufrufbaren Objekten in einem garantierten thread-sicheren Kontext bereit. Aufgaben werden entweder ergebnisorientiert über execute[SWS_CORE_00024] mit Rückgabe eines ara::core::Future für Werte oder Fehlercodes angestoßen oder statusunabhängig per oneway_execute[SWS_CORE_00025] im Fire-and-Forget-Modus übergeben. Als zentrale Randbedingung ist zu beachten, dass execute selbst nicht thread-sicher ist und parallele Aufrufe auf derselben Instanz extern synchronisiert werden müssen, während die Ausführung des Callables im Hintergrund thread-sicher erfolgt.
Kontext
Die Klasse ara::core::Executor stellt eine Schnittstelle für einen Ausführungskontext bereit, der aufrufbare Einheiten (Callables) asynchron in einer garantierten, thread-sicheren Umgebung ausführt. Sie dient als Abstraktionsschicht zwischen dem aufrufenden Thread und der asynchronen Hintergrundverarbeitung. Für die Auftragsübergabe stehen zwei Mechanismen zur Verfügung: Die Methode execute[SWS_CORE_00024] übergibt eine Aufgabe ergebnisorientiert und gibt ein ara::core::Future-Objekt zurück, über das der spätere Rückgabewert oder ein Fehlercode synchronisiert und abgefragt werden kann. Für reine Benachrichtigungen oder statusunabhängige Hintergrundoperationen stellt die Klasse die Methode oneway_execute[SWS_CORE_00025] bereit, welche einer Fire-and-Forget-Semantik folgt und keinen asynchronen Kontext an den Aufrufer zurückliefert. Vermutlich kapselt die konkrete Implementierung im Hintergrund eine Thread-Verwaltung oder Aufgaben-Warteschlange, um die nebenläufige Abarbeitung zu koordinieren. Frage Q-068fe33f2900d6cf (offen)
Lebenszyklus
Die Instanziierung und Lebensdauer eines ara::core::Executor unterliegt differenzierten Regeln hinsichtlich Ausnahme- und Thread-Sicherheit:
Kopieren: Der Kopierkonstruktor [SWS_CORE_00009] sowie der Kopierzuweisungsoperator [SWS_CORE_00017] sind thread-sicher spezifiziert, jedoch nicht als ausnahmesicher (not exception safe) eingestuft. Ein Kopiervorgang kann daher fehlschlagen, wenn notwendige Ressourcen nicht alloziiert werden können.
Verschieben: Der Move-Konstruktor [SWS_CORE_00015] und die Move-Zuweisung [SWS_CORE_00018] sind als noexcept deklariert und damit ausnahmesicher. Allerdings sind Verschiebeoperationen nicht thread-sicher (not thread-safe), weshalb gleichzeitige Zugriffe während des Verschiebens durch den Aufrufer synchronisiert werden müssen.
Zerstörung: Der Destruktor [SWS_CORE_00019] ist noexcept und thread-sicher ausgeführt, wodurch der Lebenszyklus einer Instanz sicher beendet werden kann.
Hinsichtlich der Nebenläufigkeit während des Betriebs zeigt sich eine fundamentale Aufteilung: Während oneway_execute[SWS_CORE_00025] thread-sicher ist, ist execute[SWS_CORE_00024] als nicht thread-sicher eingestuft. Die fehlende Thread-Sicherheit bei execute dürfte auf die interne Erzeugung und Verwaltung des zugrunde liegenden Zustandsobjekts für das resultierende Future zurückzuführen sein, weshalb gleichzeitige Aufrufe von execute auf derselben Instanz extern synchronisiert werden müssen. Frage Q-4425e6b07758230e (offen)
Nutzungspfad
Die Verwendung von ara::core::Executor gliedert sich in zwei wesentliche Pfade, je nachdem, ob ein Rückgabewert benötigt wird:
Ergebnisorientierter Pfad (execute): Der Aufrufer übergibt ein aufrufbares Objekt f sowie optionale Argumente p... an execute[SWS_CORE_00024]. Die Methode liefert unmittelbar ein ara::core::Future zurück, dessen Ergebnistyp auf dem abgeleiteten Rückgabetyp des Aufrufs basiert. Das Callable wird asynchron im garantierten Kontext ausgeführt. Sobald die Verarbeitung abgeschlossen ist, kann der Aufrufer den Ergebniswert oder einen potenziellen Fehlercode aus dem Future extrahieren.
Einweg-Pfad (oneway_execute): Benötigt der Aufrufer weder Rückmeldung noch Synchronisation, wird oneway_execute[SWS_CORE_00025] aufgerufen. Das Callable wird ebenfalls asynchron ausgeführt, ein Rückgabewert existiert jedoch nicht (void).
Sequenzdiagramm: Asynchrone Aufgabenabwicklung über execute und Ergebnisabfrage via Future. Quellen: [SWS_CORE_00024]
Fehlerszenarien
Die Aufrufmethoden execute[SWS_CORE_00024] und oneway_execute[SWS_CORE_00025] werfen keine C++-Ausnahmen; beide sind explizit als noexcept spezifiziert. Ebenso definiert die Spezifikation für execute keine standardisierten Fehlercodes für den Übergabeaufruf selbst [SWS_CORE_00024].
Tritt jedoch während der asynchronen Abarbeitung des Callables ein Fehler auf, wird dieser über das von execute zurückgegebene ara::core::Future propagiert: Im Fehlerfall kapselt das Future einen Fehlercode, während im Erfolgsfall der Typ ara::core::Result::value_type mit dem Funktionsergebnis bereitgestellt wird [SWS_CORE_00024]. Bei oneway_execute[SWS_CORE_00025] besteht konstruktionsbedingt keine Möglichkeit zur Fehlerrückgabe an den Aufrufer; Fehler verbleiben im asynchronen Kontext.
Dieser Leitfaden wurde durch eine KI kuratiert und stützt sich ausschließlich auf die Spezifikation von AUTOSAR Adaptive R25-11.
Asynchronously invoke F with the provided arguments P....
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9d31d266cefdHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Die Funktion execute der Klasse ara::core::Executor dient der asynchronen Ausführung eines übergebenen Funktionsobjekts f zusammen mit den Argumenten p... ([SWS_CORE_00024]). Als Rückgabewert liefert sie ein ara::core::Future, das im Erfolgsfall das Resultat des Aufrufs kapselt oder im Fehlerfall einen entsprechenden Fehlercode bereitstellt ([SWS_CORE_00024]). Die Funktion selbst ist mit dem Spezifizierer noexcept deklariert.
Standardisierte Fehlercodes werden für den Funktionsaufruf nicht spezifiziert ([SWS_CORE_00024]). Hinsichtlich der Nebenläufigkeit ist execute zwar als exception safe eingestuft, gilt jedoch explizit als not thread-safe ([SWS_CORE_00024]). Parallele Zugriffe auf dieselbe Instanz von ara::core::Executor dürften daher auf Anwenderebene synchronisiert werden müssen. Frage Q-6b839826a7d9742f (offen)
Das Zusammenspiel mit asynchronen Kontrollflüssen zeigt sich insbesondere bei Verkettungen über then ([SWS_CORE_00337], [SWS_CORE_06237]). Dort wird ein Executor-Kontext übergeben, in dessen Kontext nachfolgende Continuation-Funktionen mit dem erhaltenen ara::core::Result ausgeführt werden.
Dieser Text wurde automatisch generiert. Alle fachlichen Angaben basieren auf der Spezifikation AUTOSAR Adaptive R25-11.
ara::core::Future<std::invoke_result_t<std::decay_t< F >, std::decay_t< P >... > >
• If successful: an ara::core::Future containing a ara:: core::Result::value_type containing the result of the callable F • If unsuccessful: an ara::core::Future containing an Error Code
Fehler
Fehlercode
Beschreibung
This function does not specify any standardized errors.
Request a governed re-review of this record. The record is not changed immediately.
Asynchronously invoke F with the provided arguments P....
KI-GENERIERTungeprüftModell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1e96ad32e48dHerkunftOffene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13
Verwendung und Semantik
Die Template-Funktion oneway_execute der Klasse ara::core::Executor dient der asynchronen Ausführung einer aufrufbaren Einheit f (Callable) mit den übergebenen Argumenten p...[SWS_CORE_00025]. Da die Funktion keinen Rückgabewert liefert (Rückgabetyp void) und die Ausführung asynchron erfolgt, kehrt der Aufruf sofort zum Aufrufer zurück, ohne auf das Ende oder ein Ergebnis der Ausführung zu warten [SWS_CORE_00025].
Fehlerbehandlung und Ausnahme-Sicherheit
Die Funktion ist als noexcept deklariert und als ausnahmesicher (exception safe) spezifiziert [SWS_CORE_00025]. Mögliche Fehler oder Ausnahmen innerhalb des übergebenen Callables müssen daher vermutlich intern im Callable selbst abgefangen und behandelt werden, da keine Fehlerrückmeldung oder Ausnahme an den aufrufenden Kontext weitergegeben werden kann. Frage Q-c8d31cfa9c2e3ab9 (offen)
Nebenläufigkeit und Einschränkungen
Gemäß Spezifikation ist oneway_execute als thread-sicher (thread-safe) eingestuft [SWS_CORE_00025]. Die Funktion kann somit nebenläufig aus verschiedenen Threads auf derselben Instanz von ara::core::Executor aufgerufen werden. Die Einbindung erfolgt über die Header-Datei #include "ara/core/executor.h"[SWS_CORE_00025].
Dieser Nutzungshinweis wurde automatisiert auf Basis von AUTOSAR R25-11 erstellt.
gemini-3.8-flash-medium· 2026-10-13