Управляет пулами с привязкой к памяти для быстрого выделения в отдельных потоках без исключений.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3445f931b524ПроисхождениеОткрытые вопросы (3)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Управляет пулами с привязкой к памяти для быстрого выделения в отдельных потоках без исключений.
Класс реализует несинхронизированный ресурс пула памяти по образцу std::pmr::unsynchronized_pool_resource и управляет блоками памяти через конфигурируемый ресурс upstream. Через внутренние пулы он эффективно обслуживает повторяющиеся запросы памяти, при этом неиспользуемая суммарная память при необходимости может быть освобождена через интерфейс [SWS_CORE_00065]. Поскольку пути выделения памяти не рассчитаны на потокобезопасность, экземпляр всегда разрешается использовать только внутри одного контекста выполнения без конкурирующего доступа [SWS_CORE_00058]. В отличие от стандартного C++, при нехватке памяти операция выделения не генерирует исключений, а строго сигнализирует о сбоях возвратом нулевого указателя.
Контекст
Класс ara::core::UnsynchronizedPoolResource предоставляет в AUTOSAR Adaptive реализацию std::pmr::unsynchronized_pool_resource согласно стандарту [mem.res.pool] и наследуется от базового класса MemoryResource. Его основная задача заключается в обработке повторяющихся запросов памяти через внутренние пулы фиксированных размеров чанков (chunk) для снижения фрагментации и накладных расходов на управление по сравнению с прямыми системными выделениями памяти. Более крупные области памяти экземпляр при этом получает от вышестоящего ресурса памяти upstream, который подключен как MemoryResource* и может быть запрошен через метод upstream_resource()[SWS_CORE_00056].
Поведение внутренних чанков и границ пулов управляется параметрами конфигурации типа PoolOptions, которые доступны для просмотра через options()[SWS_CORE_00057]. Кроме того, переопределенный метод do_is_equal() позволяет выполнять сравнение с другими ресурсами памяти на равенство во время выполнения [SWS_CORE_00060]. Таким образом, класс выступает посредником между запрашивающим контекстом выполнения и лежащим в основе ресурсом upstream.
Для создания экземпляра доступно несколько конструкторов: конструктор по умолчанию без параметров [SWS_CORE_00063], конструкторы с явной передачей ресурса upstream [SWS_CORE_00064], опций конфигурации [SWS_CORE_00068] или их комбинации [SWS_CORE_00067]. Операции копирования полностью запрещены; как конструктор копирования [SWS_CORE_00046], так и оператор присваивания копированием [SWS_CORE_00047] удалены (delete). Однако, в отличие от стандарта ISO 14882, AUTOSAR явно определяет семантику перемещения: конструктор перемещения [SWS_CORE_00048] и оператор присваивания перемещением [SWS_CORE_00049] доступны как noexcept=default.
Во время работы вся память, выделенная из ресурса upstream, может быть освобождена вызовом release() без уничтожения самого объекта пула [SWS_CORE_00065]. Завершение жизненного цикла закрепляется деструктором ~UnsynchronizedPoolResource(), который объявлен как noexcept override, однако имеет существенное отличие от AUTOSAR, заключающееся в том, что он не является виртуальным [SWS_CORE_00062].
С точки зрения параллелизма класс не синхронизирован: защищенные функции выделения и освобождения памяти do_allocate()[SWS_CORE_00058] и do_deallocate()[SWS_CORE_00059] явно специфицированы как непотокобезопасные. Напротив, конструкторы, инспекторы, такие как upstream_resource()[SWS_CORE_00056] и options()[SWS_CORE_00057], а также release()[SWS_CORE_00065] и деструктор классифицированы как потокобезопасные.
Путь использования
Типичный путь использования включает инстанцирование, повторяющиеся операции выделения и освобождения памяти, а также финальную очистку:
Инициализация: вызывающая сторона создает экземпляр с указанием желаемых PoolOptions и ресурса upstream [SWS_CORE_00067].
Выделение памяти: память запрашивается через интерфейс базового класса, который делегирует вызов в do_allocate()[SWS_CORE_00058]. Интерпретация: если во внутреннем пуле нет подходящего свободного блока, у ресурса upstream запрашивается новая память чанка через его обычный интерфейс выделения памяти. Вопрос Q-ca9abd7b5da1a39f (открытый)
Освобождение памяти: освобождаемые блоки передаются в do_deallocate() и возвращаются во внутренний пул для последующих запросов [SWS_CORE_00059].
Сброс ресурсов: перед повторным использованием или перед завершением работы можно вызвать release(), чтобы пакетно вернуть блоки памяти ресурсу upstream [SWS_CORE_00065].
Уничтожение: объект штатно разрушается в конце своей области видимости через свой конкретный тип [SWS_CORE_00062].
AUTOSAR определяет для ara::core::UnsynchronizedPoolResource специфические отклонения от стандарта C++, чтобы удовлетворить требованиям детерминированного поведения во время выполнения без исключений:
Нехватка памяти при выделении: если запрос памяти в do_allocate() завершается сбоем, исключение std::bad_alloc не генерируется. Функция объявлена как noexcept и вместо этого строго возвращает nullptr[SWS_CORE_00058]. Поэтому вызывающие стороны должны последовательно проверять возвращаемые значения на nullptr.
Ошибка при освобождении памяти: если освобождение через do_deallocate() завершается неудачей, ошибка молча игнорируется («silently ignored») без распространения исключений [SWS_CORE_00059].
Полиморфное уничтожение: поскольку деструктор в отличие от [mem.res.pool] явно не является виртуальным [SWS_CORE_00062], интерпретация: уничтожение через указатель базового класса MemoryResource*, вероятно, приведет к неопределенному поведению. Вопрос Q-68ed70c0b6a907a3 (открытый) Экземпляры всегда должны уничтожаться через свой производный тип.
Безопасность исключений при создании: в то время как конструктор с опциями и ресурсом upstream считается noexcept[SWS_CORE_00067], конструктор по умолчанию [SWS_CORE_00063], а также конструкторы [SWS_CORE_00064] и [SWS_CORE_00068] помечены как небезопасные относительно исключений. Интерпретация: отсутствие безопасности исключений у этих конструкторов, вероятно, связано с тем, что при инициализации предварительные выделения памяти из ресурса upstream могут завершиться сбоем. Вопрос Q-8e2bbf2053947649 (открытый)
Настоящее руководство основано на спецификациях AUTOSAR Adaptive релиза R25-11 для модуля core.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f284e1fe400cПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Объявление конструктора копирования удаленным (=delete) в ara::core::UnsynchronizedPoolResource согласно [SWS_CORE_00046] исключает любое дублирование экземпляра пула. Для создания объектов вместо этого доступны специфические конструкторы, например без аргументов [SWS_CORE_00063], с указанием вышестоящего ресурса памяти [SWS_CORE_00064], с PoolOptions[SWS_CORE_00068] или с обоими параметрами [SWS_CORE_00067].
Для использования и поведения во время выполнения действуют следующие рамочные условия:
Вызов и обработка ошибок: попытка копирования отклоняется компилятором как ошибка еще на этапе компиляции. Ошибки выделения памяти при последующем использовании памяти через do_allocate не приводят к исключениям, а возвращают nullptr[SWS_CORE_00058], в то время как ошибки освобождения в do_deallocate молчаливо игнорируются [SWS_CORE_00059].
Параллелизм: отдельные операции с памятью на данном экземпляре объявлены непотокобезопасными [SWS_CORE_00058], [SWS_CORE_00059]. Интерпретация: удаление конструктора копирования, вероятно, призвано обеспечить эксклюзивную ответственность за управляемые блоки памяти и предотвратить несогласованные состояния при параллельном использовании или преждевременном освобождении через release[SWS_CORE_00065]. Вопрос Q-d97dd87dddb2379d (открытый)
Взаимодействие: ограничение корреспондирует с также удаленным оператором присваивания [SWS_CORE_00047]. Деструктор класса выполнен невиртуальным [SWS_CORE_00062], тогда как проверки идентичности могут выполняться через do_is_equal[SWS_CORE_00060].
Этот текст был создан ИИ; он не заменяет прочтения спецификации AUTOSAR.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6b94e396e900ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Оператор копирующего присваивания ara::core::UnsynchronizedPoolResource согласно [SWS_CORE_00047] явно объявлен удалённым (=delete). Присваивание одного экземпляра другому тем самым синтаксически исключено и приводит к ошибке компилятора уже во время компиляции. Вместе с также удалённым конструктором копирования [SWS_CORE_00046] это гарантирует, что экземпляры класса ресурсов не могут быть ни скопированы, ни размножены путём присваивания. Интерпретация: это, вероятно, предотвращает многократное ссылание на внутренние блоки памяти и управляющую информацию или их некорректное освобождение. Вопрос Q-75cee08bebc61976 (открытый)
Вместо этого новые экземпляры создаются через предоставленные конструкторы, например без параметров через [SWS_CORE_00063], с вышестоящим ресурсом через [SWS_CORE_00064] или с указанием PoolOptions через [SWS_CORE_00067] либо [SWS_CORE_00068]. Связанный вышестоящий ресурс можно запросить через [SWS_CORE_00056], а параметры конфигурации — через [SWS_CORE_00057]. Управляемая память может быть явно освобождена с помощью [SWS_CORE_00065] до того, как время жизни завершится невиртуальным деструктором [SWS_CORE_00062].
Поскольку присваивания исключены с помощью [SWS_CORE_00047], экземпляры при необходимости должны передаваться по ссылке или указателю. При этом следует учитывать, что операции выделения через [SWS_CORE_00058] и освобождения через [SWS_CORE_00059] специфицированы как непотокобезопасные. Если запрос памяти завершается неудачей, исключение не генерируется, а возвращается nullptr[SWS_CORE_00058]; ошибки при деаллокации молча игнорируются [SWS_CORE_00059].
Это указание по использованию было сгенерировано ИИ и не заменяет ручную проверку.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 1faa09f94501ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод upstream_resource() класса ara::core::UnsynchronizedPoolResource синхронно возвращает указатель на вышестоящий MemoryResource[SWS_CORE_00056]. Вызов является бессимвольным (без параметров) и объявлен как const. Подключение и объявления типов выполняются через заголовочный файл #include "ara/core/memory_resource.h"[SWS_CORE_00056].
Обработка ошибок
Функция специфицирована как noexcept, а также exception safe[SWS_CORE_00056]. Она не генерирует исключений и не сообщает ни о специфических кодах ошибок, ни о событиях DET или DEM. Если предшествующая инициализация через конструкторы завершается неудачей, они отчасти не являются исключениебезопасными [SWS_CORE_00063], тогда как сам запрос всегда остаётся безошибочным.
Параллелизм и ограничения
Метод upstream_resource() явно классифицирован как thread-safe[SWS_CORE_00056]. Это контрастирует с внутренними процедурами выделения памяти do_allocate()[SWS_CORE_00058] и do_deallocate()[SWS_CORE_00059], которые специфицированы как not thread-safe. Кроме того, конструктор копирования и оператор присваивания класса удалены [SWS_CORE_00046], [SWS_CORE_00047].
Взаимодействие
Метод тесно взаимодействует с конструкторами UnsynchronizedPoolResource, которым опционально может быть передан вышестоящий MemoryResource[SWS_CORE_00064], [SWS_CORE_00067]. Интерпретация: возвращаемый указатель, вероятно, указывает именно на экземпляр MemoryResource, определённый при инстанцировании. Вопрос Q-aefbc7d0f7d085d1 (открытый) Другие свойства ресурса пула можно запросить через options()[SWS_CORE_00057], в то время как выделенная память может быть освобождена через release()[SWS_CORE_00065].
Это указание по использованию было сгенерировано автоматически на основе спецификации.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0e89c24bf535ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция-член options() класса ara::core::UnsynchronizedPoolResource служит для синхронного запроса конфигурации пула памяти [SWS_CORE_00057]. Метод объявлен в #include "ara/core/memory_resource.h", не ожидает входных параметров и возвращает экземпляр типа PoolOptions по значению [SWS_CORE_00057]. Будучи const-квалифицированной функцией, он не модифицирует объект и ведет себя в соответствии со спецификацией в [mem.res.pool][SWS_CORE_00057].
Обработка ошибок и безопасность исключений
Интерфейс определен как noexcept и гарантирует полную безопасность относительно исключений (exception safe) [SWS_CORE_00057]. Исключения не выбрасываются, и возвращаемые значения ошибок отсутствуют; выборка опций всегда завершается успешно.
Параллелизм и ограничения
В спецификации options() обозначен как потокобезопасный (thread-safe) [SWS_CORE_00057]. Это контрастирует с функциями выделения памяти того же класса, такими как do_allocate[SWS_CORE_00058] и do_deallocate[SWS_CORE_00059], которые явно не являются потокобезопасными. Таким образом, метод может выполняться параллельно для опроса состояния.
As per corresponding usage in [mem.res.pool] except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 1abf1e899f64ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Метод do_allocate класса ara::core::UnsynchronizedPoolResource выделяет память для запрошенного размера в байтах (bytes) и выравнивания (alignment) [SWS_CORE_00058]. Интерпретация: поскольку метод специфицирован с защищенной видимостью (protected), в штатном режиме работы он, вероятно, вызывается не напрямую из прикладного кода, а косвенно через интерфейс выделения памяти базового класса. Вопрос Q-5a702813496f8071 (открытый) Объявление выполняется через заголовочный файл #include "ara/core/memory_resource.h"[SWS_CORE_00058].
Обработка ошибок
В отличие от стандартного поведения согласно [mem.res.pool], функция объявлена как noexcept и не выбрасывает исключений, таких как std::bad_alloc, при ошибках выделения памяти [SWS_CORE_00058]. Вместо этого в случае неудачи она обязательно возвращает nullptr[SWS_CORE_00058]. Следовательно, вызывающий код должен всегда явно проверять результат на равенство нулевому указателю.
Параллелизм и ограничения
Функция классифицирована как not thread-safe[SWS_CORE_00058]. Параллельные вызовы на одном и том же экземпляре UnsynchronizedPoolResource недопустимы без внешней синхронизации. Конструктор копирования и оператор присваивания класса удалены (delete), поэтому экземпляры не могут быть скопированы ([SWS_CORE_00046], [SWS_CORE_00047]).
Взаимодействие
Для освобождения памяти существует аналог do_deallocate, который также спроектирован как защищенный, noexcept и непотокобезопасный, а также молча игнорирует ошибки [SWS_CORE_00059]. Пул внутренне использует вышестоящий ресурс (upstream resource), сконфигурированный при инстанцировании ([SWS_CORE_00056], [SWS_CORE_00064], [SWS_CORE_00067]). С помощью release() полученная от пула память может быть освобождена пакетно [SWS_CORE_00065].
Этот текст был сгенерирован ИИ и основан исключительно на спецификациях релиза R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
As per corresponding usage in [mem.res.pool] except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: cf9c9d0f03e7ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Виртуальная функция-член do_deallocate объявлена как protected в области видимости ara::core::UnsynchronizedPoolResource (заголовочный файл #include "ara/core/memory_resource.h") [SWS_CORE_00059]. Она выполняет синхронное освобождение блока памяти на основе переданных параметров p (указатель на область памяти), bytes (размер в байтах) и alignment (выравнивание). Интерпретация: будучи защищенным методом, вызов, вероятно, обычно происходит косвенно через открытый интерфейс ресурса памяти. Вопрос Q-f4992f515c10ee01 (открытый)
Обработка ошибок
По сравнению со стандартным поведением в [mem.res.pool] функция имеет два специфических отличия: она объявлена как noexcept и, следовательно, безопасна относительно исключений [SWS_CORE_00059]. Если освобождение памяти завершается сбоем, ошибки молчаливо игнорируются (errors will be silently ignored); не существует ни кода ошибки, ни отдельного сообщения об ошибке.
Параллелизм и ограничения
Операция явно обозначена как непотокобезопасная (not thread-safe) [SWS_CORE_00059]. Если области памяти одного и того же экземпляра ресурса освобождаются из нескольких потоков, доступ обязательно должен быть синхронизирован извне.
Взаимодействие
Метод дополняет do_allocate[SWS_CORE_00058], который также специфицирован как noexcept и непотокобезопасный и возвращает nullptr при неудаче. Для полного освобождения всей выделенной памяти пула доступен потокобезопасный метод release[SWS_CORE_00065]. Экземпляры класса не могут быть скопированы, поскольку конструктор копирования [SWS_CORE_00046] и оператор присваивания [SWS_CORE_00047] удалены.
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 73b01a5b5d45ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Защищенная функция-член do_is_equal класса ara::core::UnsynchronizedPoolResource выполняет сравнение ресурсов памяти на равенство согласно [SWS_CORE_00060]. Она предоставляется через заголовочный файл ara/core/memory_resource.h. Поскольку метод имеет видимость protected, он предназначен для внутреннего вызова через базовый класс MemoryResource ([SWS_CORE_00060]). Он синхронно сравнивает текущий экземпляр с переданной ссылкой типа MemoryResource и возвращает значение bool ([SWS_CORE_00060]). Согласно [mem.res.pool], сравнение, как правило, должно проверять идентичность обоих ресурсов (this == &other), поскольку пулы памяти функционируют изолированно. Вопрос Q-679a5e17d2e2903f (открытый)
Метод объявлен как noexcept и имеет спецификацию exception safe ([SWS_CORE_00060]). Он не генерирует исключений и не использует сообщений об ошибках DET или DEM.
С точки зрения параллелизма do_is_equal классифицируется как thread-safe ([SWS_CORE_00060]). Поскольку он работает исключительно на чтение как константная функция-член, его можно вызывать параллельно из нескольких потоков. Это контрастирует с операциями выделения памяти, такими как do_allocate ([SWS_CORE_00058]) и do_deallocate ([SWS_CORE_00059]), которые явно не являются потокобезопасными.
As per corresponding usage in [mem.res.pool] except for the following deviations: 1. The function is not virtual
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4b99104ceb2cПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Деструктор ~UnsynchronizedPoolResource() ([SWS_CORE_00062]) завершает время жизни экземпляра класса управления памятью ara::core::UnsynchronizedPoolResource из заголовочного файла ara/core/memory_resource.h. Вызов выполняется синхронно и объявлен как noexcept, благодаря чему операция безопасна относительно исключений ([SWS_CORE_00062]).
Семантика в целом соответствует использованию пула в [mem.res.pool], однако имеет существенное отличие: деструктор не является виртуальным ([SWS_CORE_00062]). Интерпретация: из невиртуальности деструктора, вероятно, следует, что экземпляры нельзя полиморфно освобождать через указатель базового класса на MemoryResource. Вопрос Q-5578b2bf008b98c5 (открытый)
В отношении жизненного цикла и взаимодействия действуют следующие условия:
Управление ресурсами: при уничтожении экземпляра управляемая память освобождается аналогично явному освобождению через release() ([SWS_CORE_00065]) в направлении вышестоящего ресурса ([SWS_CORE_00056]).
Параллелизм: хотя сам деструктор классифицирован как потокобезопасный ([SWS_CORE_00062]), внутренние подпрограммы выделения памяти do_allocate ([SWS_CORE_00058]) и do_deallocate ([SWS_CORE_00059]) определены как непотокобезопасные. Поэтому вызов деструктора не должен происходить одновременно с операциями выделения памяти того же экземпляра.
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: b1a57ee10029ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Конструктор по умолчанию без параметров [SWS_CORE_00063] инициализирует экземпляр ara::core::UnsynchronizedPoolResource согласно семантике из [mem.res.pool]. Интерпретация: при этом, вероятно, используются стандартные параметры пула и стандартный восходящий (upstream) ресурс памяти, которые позже можно запросить через [SWS_CORE_00057] и [SWS_CORE_00056]. Вопрос Q-d76bae1c251fa516 (открытый)
В отношении жизненного цикла и использования действуют следующие рамочные условия:
Обработка ошибок и безопасность исключений: конструктор объявлен как небезопасный относительно исключений (not exception safe) [SWS_CORE_00063]. При последующей работе с памятью операции выделения отличаются от стандартных исключений: в случае ошибки do_allocate возвращает nullptr вместо исключения [SWS_CORE_00058], тогда как do_deallocate молча игнорирует ошибки [SWS_CORE_00059].
Параллелизм: сам вызов конструктора является потокобезопасным (thread-safe) [SWS_CORE_00063]. Однако последующие операции выделения и освобождения памяти созданного экземпляра (do_allocate, do_deallocate) явно специфицированы как непотокобезопасные (not thread-safe) ([SWS_CORE_00058], [SWS_CORE_00059]).
Освобождение ресурсов и уничтожение: занятая память может быть освобождена через [SWS_CORE_00065]. Деструктор является noexcept, но реализован как невиртуальный [SWS_CORE_00062].
Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 693f1605fcedПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование и назначение
Конструктор explicit UnsynchronizedPoolResource (MemoryResource *upstream) инициализирует экземпляр класса ara::core::UnsynchronizedPoolResource из заголовочного файла #include "ara/core/memory_resource.h" согласно [mem.res.pool][SWS_CORE_00064]. Через параметр upstream передаётся вышестоящий ресурс памяти, который впоследствии может быть запрошен через метод upstream_resource()[SWS_CORE_00056]. В качестве альтернатив доступны конструктор по умолчанию без параметров [SWS_CORE_00063], а также перегрузки с PoolOptions[SWS_CORE_00067], [SWS_CORE_00068].
Обработка ошибок и поведение при исключениях
Инстанцирование специфицировано как not exception safe[SWS_CORE_00064], поэтому во время конструирования могут возникать исключения. Для последующих выделений памяти действуют другие правила: внутренняя функция аллокации do_allocate не генерирует исключений, а возвращает nullptr при сбоях [SWS_CORE_00058], в то время как ошибки при do_deallocate молча игнорируются [SWS_CORE_00059].
Параллелизм и ограничения
Сам вызов конструктора считается потокобезопасным (thread-safe) [SWS_CORE_00064]. Операции копирования запрещены, так как конструктор копирования [SWS_CORE_00046] и оператор присваивания [SWS_CORE_00047] удалены. После конструирования операции аллокации и деаллокации не являются потокобезопасными (not thread-safe) [SWS_CORE_00058], [SWS_CORE_00059]. Кроме того, деструктор не объявлен виртуальным [SWS_CORE_00062]. Занятая память может быть освобождена досрочно через release()[SWS_CORE_00065]. Интерпретация: поскольку передаётся нативный указатель upstream, нижележащий upstream-ресурс, по всей видимости, должен оставаться действительным на протяжении всего жизненного цикла экземпляра пула. Вопрос Q-3e6c23bae834b912 (открытый)
Этот текст был сгенерирован ИИ и служит для технической ориентации.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e7ed99220f1fПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Использование
Функция-член release() относится к области видимости класса ara::core::UnsynchronizedPoolResource и объявляется через заголовочный файл ara/core/memory_resource.h[SWS_CORE_00065]. Функция не имеет входных параметров и возвращаемого значения (void). Ее функциональная семантика основана на стандарте C++ [mem.res.pool][SWS_CORE_00065]; данная ссылка, вероятно, означает, что функция синхронно возвращает вышестоящему ресурсу памяти (upstream_resource()) всю память, которая была выделена через экземпляр пула [SWS_CORE_00056]. Вопрос Q-e0c7e00cde5d5a34 (открытый)
Обработка ошибок
Функция определена как noexcept, а также как exception safe[SWS_CORE_00065]. Она не генерирует исключений при выполнении. Поскольку в спецификации не указаны конкретные коды ошибок или сообщения DET/DEM, при ошибках освобождения памяти явная обратная связь об ошибках через release() отсутствует.
Параллелизм и ограничения
Согласно спецификации, release() классифицируется как thread-safe[SWS_CORE_00065]. Это контрастирует с внутренними функциями управления памятью класса: как выделение с помощью do_allocate[SWS_CORE_00058], так и освобождение через do_deallocate[SWS_CORE_00059] явно классифицированы как not thread-safe.
Взаимодействие
Метод тесно взаимодействует с другими свойствами и требованиями UnsynchronizedPoolResource:
Ресурсы памяти: он возвращает память сконфигурированному вышестоящему ресурсу (upstream resource) [SWS_CORE_00056] без необходимости уничтожения самого объекта пула, как это происходит в деструкторе ~UnsynchronizedPoolResource()[SWS_CORE_00062].
Защита от копирования: дублирование пула недопустимо, поскольку конструктор копирования [SWS_CORE_00046] и оператор присваивания [SWS_CORE_00047] удалены (delete).
Этот текст основан на спецификации релиза AUTOSAR R25-11 для модуля Core.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9bac3333fca1ПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Конструктор [SWS_CORE_00067] инициализирует экземпляр ara::core::UnsynchronizedPoolResource со специфическими опциями пула (opts) и вышестоящим ресурсом памяти (upstream). Вызов выполняется синхронно и специфицирован как noexcept, благодаря чему создание объекта является исключениебезопасным. Копирование экземпляра исключено, поскольку как конструктор копирования [SWS_CORE_00046], так и оператор присваивания [SWS_CORE_00047] удалены (=delete).
Сохранённые настройки и вышестоящие ресурсы могут быть прочитаны во время выполнения через options()[SWS_CORE_00057], а также upstream_resource()[SWS_CORE_00056]. В качестве альтернатив доступны конструктор по умолчанию [SWS_CORE_00063] и перегрузки, принимающие исключительно upstream[SWS_CORE_00064] или opts[SWS_CORE_00068]. Занятая память может быть освобождена через release()[SWS_CORE_00065] или деструктор [SWS_CORE_00062], причём деструктор, в отличие от стандарта, не является виртуальным.
Что касается параллелизма, само конструирование объявлено потокобезопасным [SWS_CORE_00067]. Напротив, фактические функции управления памятью экземпляра — do_allocate[SWS_CORE_00058] и do_deallocate[SWS_CORE_00059] — явно не являются потокобезопасными («not thread-safe») и требуют внешних механизмов защиты при параллельном доступе. Ошибки при этом обрабатываются без исключений: неудачные выделения памяти возвращают nullptr[SWS_CORE_00058], тогда как ошибки деаллокации молча игнорируются [SWS_CORE_00059]. Интерпретация: переданный объект upstream, предположительно, должен оставаться валидным на протяжении всего жизненного цикла пула. Вопрос Q-2439ec8f9fb8bb3e (открытый)
Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR Adaptive R25-11.
Руководство разработчика реализации в подготовке (сложность I1)
СОЗДАНО ИИне провереноМодель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 379494cd66cfПроисхождениеОткрытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал
Конструктор [SWS_CORE_00068] служит для синхронной инициализации ara::core::UnsynchronizedPoolResource с указанием специфических параметров конфигурации через параметр opts (тип PoolOptions). Поведение соответствует стандарту [mem.res.pool] из заголовочного файла ara/core/memory_resource.h. Переданные настройки могут быть запрошены после инстанцирования с помощью options()[SWS_CORE_00057], тогда как вышестоящий менеджер памяти доступен через upstream_resource()[SWS_CORE_00056].
Что касается обработки ошибок, функция специфицирована как не являющаяся исключениебезопасной («not exception safe») [SWS_CORE_00068]. Интерпретация: если внутреннее предоставление управляющих структур при инстанцировании терпит неудачу, вероятно, выбрасывается исключение, чем этот вызов отличается от варианта noexcept[SWS_CORE_00067]. Вопрос Q-479a016f4e0ddde7 (открытый) В то время как сам конструктор классифицируется как потокобезопасный («thread-safe») [SWS_CORE_00068], последующие операции с памятью созданного экземпляра, такие как do_allocate[SWS_CORE_00058] и do_deallocate[SWS_CORE_00059], явно не являются потокобезопасными («not thread-safe»); следовательно, они не должны выполняться параллельно без защиты.
Во взаимодействии с жизненным циклом класса следует учитывать, что конструктор копирования [SWS_CORE_00046] и оператор присваивания [SWS_CORE_00047] удалены (delete). Выделенная память остаётся в пуле до тех пор, пока не будет освобождена через release()[SWS_CORE_00065] или пока объект не будет уничтожен через невиртуальный деструктор [SWS_CORE_00062].
Этот текст был сгенерирован ИИ и служит в качестве ориентировочного руководства.
Руководство разработчика реализации в подготовке (сложность I1)
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал