Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Restyle Add heap allocation to lib/support/Pool.h #11881

Closed
wants to merge 5 commits into from

Conversation

restyled-io[bot]
Copy link
Contributor

@restyled-io restyled-io bot commented Nov 16, 2021

A duplicate of #11698 with additional commits that automatically address
incorrect style, created by Restyled.

⚠️ Even though this PR is not a Fork, it contains outside contributions.
Please review accordingly.

Since the original Pull Request was opened as a fork in a contributor's
repository, we are unable to create a Pull Request branching from it with only
the style fixes.

The following Restylers made fixes:

To incorporate these changes, you can either:

  1. Merge this Pull Request instead of the original, or

  2. Ask your contributor to locally incorporate these commits and push them to
    the original Pull Request

    Expand for example instructions
    ```console
    git remote add upstream https://github.com/project-chip/connectedhomeip.git
    git fetch upstream pull/<this PR number>/head
    git merge --ff-only FETCH_HEAD
    git push
    ```
    

NOTE: As work continues on the original Pull Request, this process will
re-run and update (force-push) this Pull Request with updated style fixes as
necessary. If the style is fixed manually at any point (i.e. this process finds
no fixes to make), this Pull Request will be closed automatically.

Sorry if this was unexpected. To disable it, see our documentation.

kpschoedel and others added 5 commits November 15, 2021 10:42
#### Problem

We have too many pool allocators.

Previous PRs (#11428, #11487) transitionally use `BitMapObjectPool`
where previously `System::ObjectPool` had been used, but this lost
the ability to configure heap allocation.

#### Change overview

- Add a heap allocator (from #9590)
- Add allocation selection (from #11371)
- Use this for `System::Timer` (complementing #11487)

Co-authored-by: Zang MingJie <[email protected]>
Co-authored-by: C Freeman <[email protected]>

A future PR will use this for Inet pools (complementing #11428);
that is not done here because it would conflict with other Inet
changes under way.

#### Testing

Added heap versions of unit tests in TestPool. (A future PR will add
`System::Object`-style statistics and re-unify most of these tests.)

CI should show `.bss` decreases corresponding to increases in #11487.
- Factor out common code.
- Use a heap-allocated list to track heap-allocated objects.
- More unit tests.
@restyled-io restyled-io bot added the restyled label Nov 16, 2021
@todo
Copy link

todo bot commented Nov 16, 2021

(#11880): Release all active objects (or verify that none are active) when destroying the pool.

// TODO(#11880): Release all active objects (or verify that none are active) when destroying the pool.
// ReleaseAll();
}
template <typename... Args>
T * CreateObject(Args &&... args)
{
T * object = new T(std::forward<Args>(args)...);
if (object != nullptr)
{
auto node = new internal::HeapObjectListNode();


This comment was generated by todo based on a TODO comment in 3526e89 in #11881. cc @project-chip.

@restyled-io restyled-io bot closed this Nov 16, 2021
@restyled-io restyled-io bot deleted the restyled/x7715-pool-heap branch November 16, 2021 22:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants