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
Permite la ejecución asíncrona y segura para subprocesos de objetos invocables con retorno opcional mediante futuros.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 690890643de1ProcedenciaPreguntas abiertas (2)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite la ejecución asíncrona y segura para subprocesos de objetos invocables con retorno opcional mediante futuros.
La clase ara::core::Executor proporciona una interfaz para la ejecución asíncrona de objetos invocables en un contexto garantizado y seguro para subprocesos. Las tareas se inician bien orientadas a resultados a través de execute[SWS_CORE_00024] con devolución de un ara::core::Future para valores o códigos de error, bien de forma independiente del estado mediante oneway_execute[SWS_CORE_00025] en modo «fire-and-forget». Como condición de contorno fundamental debe tenerse en cuenta que execute por sí mismo no es seguro para subprocesos y las llamadas simultáneas sobre la misma instancia deben sincronizarse externamente, mientras que la ejecución del objeto invocable en segundo plano se produce de forma segura para subprocesos.
Contexto
La clase ara::core::Executor proporciona una interfaz para un contexto de ejecución que ejecuta unidades invocables (callables) de forma asíncrona en un entorno garantizado y seguro para subprocesos. Actúa como capa de abstracción entre el subproceso invocador y el procesamiento asíncrono en segundo plano. Para la transferencia de tareas existen dos mecanismos disponibles: el método execute[SWS_CORE_00024] transfiere una tarea orientada a resultados y devuelve un objeto ara::core::Future, mediante el cual se puede sincronizar y consultar el valor de retorno posterior o un código de error. Para meras notificaciones u operaciones en segundo plano independientes del estado, la clase proporciona el método oneway_execute[SWS_CORE_00025], el cual sigue una semántica «fire-and-forget» y no devuelve ningún contexto asíncrono al invocador. Presumiblemente, la implementación concreta encapsula en segundo plano una gestión de subprocesos o una cola de tareas para coordinar la ejecución concurrente. Pregunta Q-068fe33f2900d6cf (abierta)
Ciclo de vida
La instanciación y el ciclo de vida de un ara::core::Executor están sujetos a reglas diferenciadas en cuanto a seguridad frente a excepciones y seguridad para subprocesos:
Copia: el constructor de copia [SWS_CORE_00009] y el operador de asignación por copia [SWS_CORE_00017] están especificados como seguros para subprocesos, pero no están clasificados como seguros frente a excepciones (not exception safe). Por lo tanto, una operación de copia puede fallar si no se pueden asignar los recursos necesarios.
Movimiento: el constructor de movimiento [SWS_CORE_00015] y la asignación por movimiento [SWS_CORE_00018] están declarados como noexcept y son, por ende, seguros frente a excepciones. No obstante, las operaciones de movimiento no son seguras para subprocesos (not thread-safe), por lo que el invocador debe sincronizar los accesos simultáneos durante el movimiento.
Destrucción: el destructor [SWS_CORE_00019] es noexcept y se ejecuta de manera segura para subprocesos, lo que permite finalizar de forma segura el ciclo de vida de una instancia.
En lo relativo a la concurrencia durante el funcionamiento, se observa una división fundamental: mientras que oneway_execute[SWS_CORE_00025] es seguro para subprocesos, execute[SWS_CORE_00024] está clasificado como no seguro para subprocesos. La falta de seguridad para subprocesos en execute probablemente se deba a la creación y gestión internas del objeto de estado subyacente para el futuro resultante, razón por la cual las llamadas simultáneas a execute en la misma instancia deben sincronizarse externamente. Pregunta Q-4425e6b07758230e (abierta)
Ruta de uso
El uso de ara::core::Executor se divide en dos vías esenciales, dependiendo de si se requiere un valor de retorno:
Vía orientada a resultados (execute): el invocador pasa un objeto invocable f así como argumentos opcionales p... a execute[SWS_CORE_00024]. El método devuelve inmediatamente un ara::core::Future cuyo tipo de resultado se basa en el tipo de retorno deducido de la llamada. El objeto invocable se ejecuta de forma asíncrona en el contexto garantizado. Una vez finalizado el procesamiento, el invocador puede extraer del futuro el valor de resultado o un posible código de error.
Vía unidireccional (oneway_execute): si el invocador no requiere ni confirmación ni sincronización, se invoca oneway_execute[SWS_CORE_00025]. El objeto invocable también se ejecuta de forma asíncrona, pero no existe valor de retorno (void).
Diagrama de secuencia: procesamiento asíncrono de tareas mediante execute y consulta de resultados a través de Future. Fuentes: [SWS_CORE_00024]
Escenarios de error
Los métodos de invocación execute[SWS_CORE_00024] y oneway_execute[SWS_CORE_00025] no lanzan excepciones de C++; ambos están especificados explícitamente como noexcept. Asimismo, la especificación para execute no define códigos de error estandarizados para la propia llamada de transferencia [SWS_CORE_00024].
Sin embargo, si se produce un error durante la ejecución asíncrona del objeto invocable, este se propaga a través del ara::core::Future devuelto por execute: en caso de error, el futuro encapsula un código de error, mientras que en caso de éxito se suministra el tipo ara::core::Result::value_type con el resultado de la función [SWS_CORE_00024]. En oneway_execute[SWS_CORE_00025], por diseño, no existe posibilidad de devolución de errores al invocador; los errores permanecen en el contexto asíncrono.
Esta guía ha sido elaborada por una IA y se basa exclusivamente en la especificación de AUTOSAR Adaptive R25-11.
Asynchronously invoke F with the provided arguments P....
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9d31d266cefdProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
La función execute de la clase ara::core::Executor sirve para la ejecución asíncrona de un objeto de función pasado f junto con los argumentos p... ([SWS_CORE_00024]). Como valor de retorno proporciona un ara::core::Future que, en caso de éxito, encapsula el resultado de la invocación o, en caso de error, suministra un código de error correspondiente ([SWS_CORE_00024]). La propia función está declarada con el especificador noexcept.
No se especifican códigos de error estandarizados para la invocación de la función ([SWS_CORE_00024]). En lo referente a la concurrencia, si bien execute está clasificada como exception safe, se considera explícitamente como not thread-safe ([SWS_CORE_00024]). Por tanto, es probable que los accesos paralelos a la misma instancia de ara::core::Executor deban sincronizarse a nivel de usuario. Pregunta Q-6b839826a7d9742f (abierta)
La interacción con los flujos de control asíncronos se manifiesta especialmente en el encadenamiento mediante then ([SWS_CORE_00337], [SWS_CORE_06237]). Allí se pasa un contexto de ejecutor en cuyo contexto se ejecutan las funciones de continuación subsiguientes con el ara::core::Result obtenido.
Este texto ha sido generado automáticamente. Todos los datos técnicos se basan en la especificación 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....
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 1e96ad32e48dProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Uso y semántica
La función plantilla oneway_execute de la clase ara::core::Executor sirve para la ejecución asíncrona de una unidad invocable f (Callable) con los argumentos transferidos p...[SWS_CORE_00025]. Puesto que la función no devuelve ningún valor (tipo de retorno void) y la ejecución se realiza de forma asíncrona, la llamada regresa de inmediato al invocador sin esperar al final ni a un resultado de la ejecución [SWS_CORE_00025].
Tratamiento de fallos y seguridad frente a excepciones
La función está declarada como noexcept y especificada como segura frente a excepciones (exception safe) [SWS_CORE_00025]. Por lo tanto, los posibles errores o excepciones dentro del callable suministrado probablemente deban capturarse y gestionarse internamente en el propio callable, dado que no es posible propagar ninguna retroalimentación de error ni excepción al contexto llamador. Pregunta Q-c8d31cfa9c2e3ab9 (abierta)
Concurrencia y restricciones
Según la especificación, oneway_execute está catalogada como segura para subprocesos (thread-safe) [SWS_CORE_00025]. Por consiguiente, la función puede llamarse concurrentemente desde diferentes hilos sobre la misma instancia de ara::core::Executor. La integración se realiza mediante el archivo de encabezado #include "ara/core/executor.h"[SWS_CORE_00025].
Esta nota de uso se generó de forma automatizada sobre la base de AUTOSAR R25-11.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán