DEENESPTFRRUARHIKOZHNL

class ara::core::SynchronizedPoolResource

[SWS_CORE_00029] Upstream: RS_AP_00130

class SynchronizedPoolResource :           public MemoryResource {...};

Implementation of std::pmr::synchronized_pool_resource from [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Forwarding-Header#include "ara/core/core_fwd.h"
Scopenamespace ara::core
Basisklasse(n)MemoryResource

User GuideAI-GENERATED

Provides a thread-safe pool memory resource for efficient allocation and deallocation of memory blocks.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 8c6c1308f3f6 Provenance Open questions (3)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Provides a thread-safe pool memory resource for efficient allocation and deallocation of memory blocks.

The class ara::core::SynchronizedPoolResource provides a thread-safe memory resource that handles allocations via internal pools and requests additional memory from a higher-level upstream resource ([SWS_CORE_00030]). In contrast to the C++ standard, memory allocation does not throw exceptions upon failures, but instead returns nullptr ([SWS_CORE_00061]). Copy operations are completely prevented, while move operations are explicitly supported. In addition, the destructor is non-virtual, which is why instances must not be deallocated polymorphically via a base class pointer.

Context

The class ara::core::SynchronizedPoolResource provides a thread-safe memory resource for the AUTOSAR Adaptive Platform within the module core. It is based on the concept of std::pmr::synchronized_pool_resource according to C++ standard [mem.res.pool] and derives publicly from the base class MemoryResource. Its core task is to manage memory blocks via internal pools categorized by size classes in order to handle recurring allocations efficiently and concurrently. If the internal supply is insufficient, the instance obtains larger memory blocks from a higher-level upstream memory resource ([SWS_CORE_00038]).

Typical interaction partners include concurrent threads of an application requesting allocations, the SynchronizedPoolResource as an intermediary pool manager, and an underlying MemoryResource as an upstream source. All central access and management functions such as do_allocate, do_deallocate, options, and release are designed to be thread-safe ([SWS_CORE_00061], [SWS_CORE_00041], [SWS_CORE_00039], [SWS_CORE_00037]).

SynchronizedPoolResourceKontext Client Aufrufende Threads Pool ara::core::SynchronizedPoolResource Client->Pool Zuteilung / Freigabe Upstream Upstream MemoryResource Pool->Upstream Chunk-Allokation / release()

Context diagram: Interplay between concurrent application threads, the pool resource, and the upstream memory source. Sources: [SWS_CORE_00030], [SWS_CORE_00038].

Lifecycle

The instantiation of SynchronizedPoolResource can occur via several constructor overloads. If both allocation options (PoolOptions) and an upstream resource are available, initialization guarantees complete exception safety and is declared as noexcept ([SWS_CORE_00030]). In addition, there are constructors without parameters ([SWS_CORE_00031]), with an upstream pointer only ([SWS_CORE_00032]), or with pool options only ([SWS_CORE_00033]). Interpretation: If no upstream pointer is passed, the implementation presumably falls back on a platform-specific default memory resource. Question Q-5dafb414672249dc (open)

Regarding ownership, the class strictly excludes copying: both the copy constructor ([SWS_CORE_00034]) and the copy assignment operator ([SWS_CORE_00036]) are deleted (=delete). In contrast to the ISO C++17 standard, however, AUTOSAR explicitly defines move semantics for this class: a move constructor ([SWS_CORE_00043]) and a move assignment operator ([SWS_CORE_00044]) are each provided as noexcept=default.

A central aspect of destruction is the deviation from standard behavior: the destructor ~SynchronizedPoolResource() is explicitly non-virtual ([SWS_CORE_00035]). Interpretation: Since the destructor is not virtual, polymorphic destruction via a pointer of base class MemoryResource* is likely to lead to undefined behavior; instances should therefore always be destroyed via their concrete type. Question Q-5add73880279b024 (open) In addition, by calling release(), all allocated memory can be returned to the upstream resource while the resource object remains intact ([SWS_CORE_00037]).

Usage Path

The typical sequence comprises initialization, repeated allocation and deallocation of memory blocks, and final cleanup:

  1. Initialization: The application creates the instance specifying configuration parameters and a higher-level memory resource ([SWS_CORE_00030]). The active settings can be queried via options() ([SWS_CORE_00039]), and the upstream pointer via upstream_resource() ([SWS_CORE_00038]).
  2. Memory allocation: Memory requests are processed in a protected manner via do_allocate ([SWS_CORE_00061]). Interpretation: The invocation in application code usually does not take place directly via the protected method do_allocate, but via the inherited public interface allocate of the base class MemoryResource. Question Q-1542a47cdff73dfb (open)
  3. Identity check: Via do_is_equal, it can be determined whether two memory resources are equivalent to each other ([SWS_CORE_00042]).
  4. Deallocation: Individual memory areas are returned to the pool via do_deallocate ([SWS_CORE_00041]). If required, all memory of all pools can be returned collectively to the upstream resource via release() ([SWS_CORE_00037]).
Usage sequence of SynchronizedPoolResourceApplicationSynchronizedPoolResourceUpstreamResourceUse Case: InitialisierungSynchronizedPoolResource(opts, &upstream)Use Case: Allokationdo_allocate(bytes, alignment)optPool exhausted / chunk requiredSpeicher anfordernSpeicherbereichSpeicherzeiger / nullptrUse Case: Deallocation and cleanupdo_deallocate(p, bytes, alignment)release()Return memory to upstream

Sequence diagram: Typical sequence of initialization, memory request, deallocation, and cleanup via upstream resources. Sources: [SWS_CORE_00030], [SWS_CORE_00061], [SWS_CORE_00041], [SWS_CORE_00037].

Error Scenarios

In error handling, the AUTOSAR Adaptive Platform deliberately deviates from the exception conventions of the C++ standard:

  • Allocation error: While ISO C++ provides for throwing std::bad_alloc in the event of exhaustion, do_allocate in AUTOSAR is defined as noexcept. If no suitable memory block can be provided, the method mandatorily returns a null pointer (nullptr) instead ([SWS_CORE_00061]). Callers must therefore check every allocation return value for nullptr.
  • Deallocation error: The method do_deallocate is also noexcept. If an error occurs when returning a memory block, it is silently ignored according to the specification ([SWS_CORE_00041]).
  • Construction risks: While the constructor with options and upstream resource is exception-safe ([SWS_CORE_00030]), the constructors without an upstream specification or without options are classified as not exception-safe ("not exception safe") ([SWS_CORE_00031], [SWS_CORE_00032], [SWS_CORE_00033]). Interpretation: If the internal provisioning of pool management structures fails for these constructors, object creation may fail. Question (open)

This class guide summarizes the specification of ara::core::SynchronizedPoolResource for AUTOSAR Adaptive Release R25-11.

Member map

Class diagram

Hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); Klicken öffnet die jeweilige Klassenseite.

G nara__core__SynchronizedPoolResource481 SynchronizedPoolResource + SynchronizedPoolResource() + operator=() + ~SynchronizedPoolResource() + options() + release() + upstream_resource() + do_allocate() + do_deallocate() + do_is_equal() nara__core__MemoryResource130 MemoryResource nara__core__SynchronizedPoolResource481->nara__core__MemoryResource130

Detail view

Select an entry in the outline.

Constructors and destructor

≙ [mem.res.pool]

Overloads SynchronizedPoolResource 6
SynchronizedPoolResource (const PoolOptions &opts, MemoryResource *upstream) noexcept; SWS_CORE_00030
SynchronizedPoolResource (); SWS_CORE_00031
explicit SynchronizedPoolResource (MemoryResource *upstream); SWS_CORE_00032
explicit SynchronizedPoolResource (const PoolOptions &opts); SWS_CORE_00033
SynchronizedPoolResource (const SynchronizedPoolResource &)=delete; SWS_CORE_00034
SynchronizedPoolResource (SynchronizedPoolResource &&other) noexcept=default; SWS_CORE_00043

except for the following deviations: 1. The function is not virtual ≙ [mem.res.pool]

~SynchronizedPoolResource () noexcept override;

Methods

do_allocate function

except for the following deviations: 1. The function is noexcept 2. The function returns nullptr instead of (potentially) throwing a std::bad_alloc exception ≙ std::bad_alloc

void * do_allocate (std::size_t bytes, std::size_t alignment) noexcept override;
do_deallocate function

except for the following deviations: 1. The function is noexcept 2. If unsuccessful: errors will be silently ignored ≙ [mem.res.pool]

void do_deallocate (void *p, std::size_t bytes, std::size_t alignment) noexcept override;
do_is_equal function

≙ [mem.res.pool]

bool do_is_equal (const MemoryResource &other) const noexcept override;
options function

≙ [mem.res.pool]

PoolOptions options () const noexcept;
release function

≙ [mem.res.pool]

void release () noexcept;

≙ [mem.res.pool]

MemoryResource * upstream_resource () const noexcept;

Operators

operator= function 2

≙ [mem.res.pool]

Overloads = 2

Method documentation

function SynchronizedPoolResource [SWS_CORE_00030]

SynchronizedPoolResource (const PoolOptions &opts, MemoryResource *upstream) noexcept;

As per corresponding usage in [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00030
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00030@rel:R25-11#f8089aa9
Content hash
f8089aa9
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00030
Status: valid/unmigrated Version: rel:R25-11#1501c053 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00030@rel:R25-11#1501c053
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#f8089aa92026-09-30
  • R24-11rel:R24-11#faeb22342026-10-14
  • R25-11rel:R25-11#1501c0532026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SynchronizedPoolResource [SWS_CORE_00031]

SynchronizedPoolResource ();

As per corresponding usage in [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitnot exception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00031
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00031@rel:R25-11#6a93df77
Content hash
6a93df77
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00031
Status: valid/unmigrated Version: rel:R25-11#63c60a5b Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00031@rel:R25-11#63c60a5b
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#6a93df772026-09-30
  • R24-11rel:R24-11#be6b67802026-10-14
  • R25-11rel:R25-11#63c60a5b2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SynchronizedPoolResource [SWS_CORE_00032]

explicit SynchronizedPoolResource (MemoryResource *upstream);

As per corresponding usage in [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitnot exception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00032
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00032@rel:R25-11#f8e2d78a
Content hash
f8e2d78a
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00032
Status: valid/unmigrated Version: rel:R25-11#067110c6 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00032@rel:R25-11#067110c6
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#f8e2d78a2026-09-30
  • R24-11rel:R24-11#27e7852a2026-10-14
  • R25-11rel:R25-11#067110c62026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SynchronizedPoolResource [SWS_CORE_00033]

explicit SynchronizedPoolResource (const PoolOptions &opts);

As per corresponding usage in [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitnot exception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00033
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00033@rel:R25-11#c83c0227
Content hash
c83c0227
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00033
Status: valid/unmigrated Version: rel:R25-11#5b044f0f Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00033@rel:R25-11#5b044f0f
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#c83c02272026-09-30
  • R24-11rel:R24-11#7830448d2026-10-14
  • R25-11rel:R25-11#5b044f0f2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SynchronizedPoolResource [SWS_CORE_00034]

SynchronizedPoolResource (const SynchronizedPoolResource &)=delete;

As per corresponding usage in [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00034
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00034@rel:R25-11#e9c9708e
Content hash
e9c9708e
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00034
Status: valid/unmigrated Version: rel:R25-11#0d5ed9ad Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00034@rel:R25-11#0d5ed9ad
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#e9c9708e2026-09-30
  • R24-11rel:R24-11#599cf30b2026-10-14
  • R25-11rel:R25-11#0d5ed9ad2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function SynchronizedPoolResource [SWS_CORE_00043] Upstream: RS_AP_00145

SynchronizedPoolResource (SynchronizedPoolResource &&other) noexcept=default;

[AUTOSAR defined] not present in ISO-14882. Move constructor

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00043
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00043@rel:R25-11#e85c46f2
Content hash
e85c46f2
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00043
Status: valid/unmigrated Version: rel:R25-11#107ef101 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00043@rel:R25-11#107ef101
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#e85c46f22026-09-30
  • R24-11rel:R24-11#ee10a8d92026-10-14
  • R25-11rel:R25-11#107ef1012026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function do_allocate [SWS_CORE_00061]

void * do_allocate (std::size_t bytes, std::size_t alignment) noexcept override;

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

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: d6b2e58cc49a Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Allocation Semantics

The member function do_allocate of class ara::core::SynchronizedPoolResource from the header file #include "ara/core/memory_resource.h" serves to allocate memory areas with the specified byte size bytes and alignment alignment [SWS_CORE_00061]. In the event of success, the synchronous call returns a valid pointer of type void* to the allocated memory block according to [mem.res.pool] [SWS_CORE_00061].

Error Handling and Deviations

Regarding error behavior, the implementation explicitly deviates from the requirements in [mem.res.pool]: The method is declared as noexcept and does not throw a std::bad_alloc exception [SWS_CORE_00061]. Upon failure of the memory request, the returned pointer is instead mandatorily nullptr [SWS_CORE_00061]. Callers must therefore check the return value for a null pointer to reliably intercept allocation errors.

Concurrency and Interaction

The function is specified as exception safe and, in contrast to other memory resources, as thread-safe [SWS_CORE_00061]. Due to its protected visibility, it is expected in practice to function primarily as an internal override of the pure virtual base interface do_allocate from ara::core::MemoryResource [SWS_CORE_06566]. Question Q-95ba181693426bfc (open) While ara::core::SynchronizedPoolResource secures concurrent access [SWS_CORE_00061], comparable implementations such as ara::core::UnsynchronizedPoolResource::do_allocate [SWS_CORE_00058] and ara::core::MonotonicBufferResource::do_allocate [SWS_CORE_06569] are defined as not thread-safe.

This text was generated by an AI system based on the AUTOSAR Adaptive R25-11 specification.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Sichtbarkeitprotected

Rückgabewert

TypBeschreibung
void *• If successful: As per corresponding usage in [mem.res.pool] • If unsuccessful: the returned pointer shall be nullptr

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00061
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00061@rel:R25-11#e22e6db2
Content hash
e22e6db2
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00061
Status: valid/unmigrated Version: rel:R25-11#7fd00d51 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00061@rel:R25-11#7fd00d51
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#e22e6db22026-09-30
  • R24-11rel:R24-11#2f88c08f2026-10-14
  • R25-11rel:R25-11#7fd00d512026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function do_deallocate [SWS_CORE_00041]

void do_deallocate (void *p, std::size_t bytes, std::size_t alignment) noexcept override;

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

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: b07cac0de0a1 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The protected member function do_deallocate of class ara::core::SynchronizedPoolResource serves to deallocate a previously allocated memory area according to [SWS_CORE_00041]. Its call occurs synchronously and expects a pointer p to the memory area, the size bytes in bytes, and the memory alignment alignment as parameters. Since the member function is declared with visibility protected, it is presumably not called directly in regular application code, but executed via the public deallocation interface of the base class ara::core::MemoryResource ([SWS_CORE_06567]). Question Q-badea921c907c214 (open)

Regarding error handling and exception behavior, the specification defines two mandatory deviations from the standard:

  • The function is declared as noexcept and completely exception safe (exception safe) ([SWS_CORE_00041]).
  • If deallocation is not successful, occurring errors are silently ignored ([SWS_CORE_00041]). Neither throwing an exception nor reporting an error code takes place.

In the area of concurrency, the implementation in ara::core::SynchronizedPoolResource is characterized by the fact that it is explicitly specified as thread-safe (thread-safe) ([SWS_CORE_00041]). It is therefore suitable for simultaneous invocation from multiple threads. In this respect, it differs essentially from the related resources ara::core::UnsynchronizedPoolResource ([SWS_CORE_00059]) and ara::core::MonotonicBufferResource ([SWS_CORE_06570]), which are classified as not thread-safe.

This text was generated by an AI based on the AUTOSAR R25-11 specification.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Sichtbarkeitprotected

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00041
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00041@rel:R25-11#87477523
Content hash
87477523
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00041
Status: valid/unmigrated Version: rel:R25-11#c6457f44 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00041@rel:R25-11#c6457f44
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#874775232026-09-30
  • R24-11rel:R24-11#0c42970f2026-10-14
  • R25-11rel:R25-11#c6457f442026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function do_is_equal [SWS_CORE_00042]

bool do_is_equal (const MemoryResource &other) const noexcept override;

As per corresponding usage in [mem.res.pool]

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: c89ab0c97360 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The protected member function do_is_equal checks the equality of an instance of ara::core::SynchronizedPoolResource with another memory resource [SWS_CORE_00042]. It overrides the pure virtual base class method from ara::core::MemoryResource [SWS_CORE_06568] according to the specification for pool resources in [mem.res.pool].

Usage and interface: A reference to another ara::core::MemoryResource object is passed as a parameter (const MemoryResource &other). The return value of type bool indicates whether both resources are equivalent. Interpretation: Due to the visibility protected, the function is not called directly in the regular application flow, but is executed via the public comparison method of the base class. Question Q-29fb2980d1241fae (open)

Error handling and safety: The method is declared with the identifier noexcept and specified as exception safe [SWS_CORE_00042]. Neither exceptions nor specific error codes occur. Execution is synchronous.

Concurrency: According to [SWS_CORE_00042], do_is_equal is specified as thread-safe, so that simultaneous comparisons across multiple threads are permitted without additional external synchronization.

Interplay: The function forms the thread-safe counterpart to the implementation in ara::core::UnsynchronizedPoolResource [SWS_CORE_00060]. Likewise, ara::core::MonotonicBufferResource provides a corresponding override, which is also designated as noexcept [SWS_CORE_06571].

This text was generated by an AI based on the AUTOSAR Adaptive R25-11 specification.

Implementer's Guide to follow (complexity I1)

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe
Sichtbarkeitprotected

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00042
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00042@rel:R25-11#0fcf0b45
Content hash
0fcf0b45
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00042
Status: valid/unmigrated Version: rel:R25-11#6ecf1a68 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00042@rel:R25-11#6ecf1a68
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#0fcf0b452026-09-30
  • R24-11rel:R24-11#d999b0d62026-10-14
  • R25-11rel:R25-11#6ecf1a682026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function operator= [SWS_CORE_00036]

SynchronizedPoolResource & operator= (const SynchronizedPoolResource &)=delete;

As per corresponding usage in [mem.res.pool]

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00036
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00036@rel:R25-11#e3bdcb9c
Content hash
e3bdcb9c
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00036
Status: valid/unmigrated Version: rel:R25-11#71efdb4a Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00036@rel:R25-11#71efdb4a
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#e3bdcb9c2026-09-30
  • R24-11rel:R24-11#fc1cd0a02026-10-14
  • R25-11rel:R25-11#71efdb4a2026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function operator= [SWS_CORE_00044] Upstream: RS_AP_00145

SynchronizedPoolResource & operator= (SynchronizedPoolResource &&other) noexcept=default;

[AUTOSAR defined] not present in ISO-14882. Move assignment operator

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00044
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00044@rel:R25-11#2845c0fb
Content hash
2845c0fb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00044
Status: valid/unmigrated Version: rel:R25-11#4a2251b2 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00044@rel:R25-11#4a2251b2
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#2845c0fb2026-09-30
  • R24-11rel:R24-11#9e9c91662026-10-14
  • R25-11rel:R25-11#4a2251b22026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function options [SWS_CORE_00039]

PoolOptions options () const noexcept;

As per corresponding usage in [mem.res.pool]

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 4714ac548826 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The member function options of class ara::core::SynchronizedPoolResource synchronously returns the settings configured for the memory resource of type PoolOptions [SWS_CORE_00039]. The call takes no parameters on an instance of the class and is declared via the header ara/core/memory_resource.h [SWS_CORE_00039]. According to the specification, the behavior is modeled on [mem.res.pool] [SWS_CORE_00039], which may be interpreted as leaning on the pool resources of the C++ standard. Question Q-9abfddc2cf8dc88c (open)

Regarding error handling and exception safety, the method is declared as noexcept and is considered completely exception-safe (exception safe) [SWS_CORE_00039]. Specific error codes or notifications to DET or DEM do not exist for this query function.

Regarding concurrency, the method is specified as const as well as explicitly thread-safe (thread-safe) [SWS_CORE_00039]. It can thus be safely called in parallel from multiple threads without additional synchronization measures at user level.

In interaction within ara::core, [SWS_CORE_00057] provides the unsynchronized counterpart: For ara::core::UnsynchronizedPoolResource, there exists a function options with the same name and signature and with identical semantics according to [mem.res.pool].

This text was generated by an AI and serves as an orienting usage aid.

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00039
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00039@rel:R25-11#065c0743
Content hash
065c0743
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00039
Status: valid/unmigrated Version: rel:R25-11#104880b6 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00039@rel:R25-11#104880b6
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#065c07432026-09-30
  • R24-11rel:R24-11#d92abe712026-10-14
  • R25-11rel:R25-11#104880b62026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function release [SWS_CORE_00037]

void release () noexcept;

As per corresponding usage in [mem.res.pool]

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 32c426df4959 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous member function release() belongs to class ara::core::SynchronizedPoolResource and is provided via the header file #include "ara/core/memory_resource.h" [SWS_CORE_00037]. It has the signature void release () noexcept;, takes no parameters, and has no return value. The functional semantics follow the corresponding usage in [mem.res.pool] [SWS_CORE_00037], thereby releasing the memory managed by the memory resource.

Regarding error handling, the function is declared as exception safe (exception safe) and noexcept [SWS_CORE_00037]. No C++ exceptions occur; specific error codes or error reports via DET or DEM are not defined within the scope of the specification.

Regarding concurrency, the operation is explicitly specified as thread-safe (thread-safe) [SWS_CORE_00037]. A simultaneous invocation from multiple threads on the same resource instance is therefore expected to be permissible without additional application-side locks. Question Q-3da3b45ca2070b3e (open)

In interaction, the behavior corresponds to the functionally equivalent method in ara::core::UnsynchronizedPoolResource [SWS_CORE_00065], which likewise refers to [mem.res.pool] and is designated as noexcept as well as thread-safe. In contrast, the analogous release() function of ara::core::MonotonicBufferResource [SWS_CORE_06530] is not thread-safe (not thread-safe) according to the specification, although it is likewise subject to the noexcept guarantee.

This text was created by an AI and is based solely on specification data from AUTOSAR R25-11.

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00037
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00037@rel:R25-11#adf41cb1
Content hash
adf41cb1
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00037
Status: valid/unmigrated Version: rel:R25-11#e7871754 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00037@rel:R25-11#e7871754
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#adf41cb12026-09-30
  • R24-11rel:R24-11#00875b8f2026-10-14
  • R25-11rel:R25-11#e78717542026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function upstream_resource [SWS_CORE_00038]

MemoryResource * upstream_resource () const noexcept;

As per corresponding usage in [mem.res.pool]

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 6f69b7b33ad7 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The member function upstream_resource() of class ara::core::SynchronizedPoolResource returns a pointer to the underlying upstream memory resource (MemoryResource*) according to [SWS_CORE_00038]. The invocation is synchronous and requires including the header file #include "ara/core/memory_resource.h" [SWS_CORE_00038]. The function takes no arguments and serves as a pure inspector for the upstream memory management unit.

Error Handling and Exception Safety

The method is declared as noexcept and classified as exception safe (exception safe) according to the specification [SWS_CORE_00038]. Failure of the query or throwing exceptions is excluded; error codes do not exist for this call.

Concurrency and Limitations

The function is specified as const as well as explicitly as thread-safe (thread-safe) [SWS_CORE_00038]. It can thus be invoked concurrently from multiple execution contexts without additional external synchronization.

Interaction

The concept of an upstream memory resource is consistently provided across various memory pool implementations of AUTOSAR Adaptive Core:

  • In ara::core::UnsynchronizedPoolResource, the functionally identical method [SWS_CORE_00056] likewise provides a pointer to the upstream resource, but is targeted at pool scenarios that are not internally synchronized.
  • In ara::core::MonotonicBufferResource, a corresponding counterpart exists with [SWS_CORE_06531], which is likewise specified as noexcept as well as thread-safe.

This usage note was automatically generated based on the AUTOSAR payload.

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00038
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00038@rel:R25-11#8f2216bb
Content hash
8f2216bb
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00038
Status: valid/unmigrated Version: rel:R25-11#72bf42c6 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00038@rel:R25-11#72bf42c6
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#8f2216bb2026-09-30
  • R24-11rel:R24-11#4fe314762026-10-14
  • R25-11rel:R25-11#72bf42c62026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

function ~SynchronizedPoolResource [SWS_CORE_00035]

~SynchronizedPoolResource () noexcept override;

As per corresponding usage in [mem.res.pool] except for the following deviations: 1. The function is not virtual

Header-Datei#include "ara/core/memory_resource.h"
Scopeclass ara::core::SynchronizedPoolResource
Exception-Sicherheitexception safe
Thread-Sicherheitthread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_CORE_00035
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_CORE_00035@rel:R25-11#7dd197ad
Content hash
7dd197ad
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_Core.pdf#nameddest=SWS_CORE_00035
Status: valid/unmigrated Version: rel:R25-11#ecac8c82 Versionshistorie & Revisions (1 transition, 3 revision)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_CORE_00035@rel:R25-11#ecac8c82
Point-in-Time History:
Recorded Revisions (3):
  • R25-11rel:R25-11#7dd197ad2026-09-30
  • R24-11rel:R24-11#969d9a0a2026-10-14
  • R25-11rel:R25-11#ecac8c822026-10-14 active
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill