Pigweed
C/C++ API Reference
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Loading...
Searching...
No Matches
pw_allocator
public
pw_allocator
async_pool.h
1
// Copyright 2025 The Pigweed Authors
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
4
// use this file except in compliance with the License. You may obtain a copy of
5
// the License at
6
//
7
// https://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12
// License for the specific language governing permissions and limitations under
13
// the License.
14
#pragma once
15
16
#include "pw_allocator/deallocator.h"
17
#include "pw_allocator/pool.h"
18
#include "pw_async2/context.h"
19
#include "pw_async2/poll.h"
20
#include "pw_async2/waker.h"
21
22
namespace
pw::allocator {
23
28
class
AsyncPool
:
public
Pool
{
29
public
:
30
constexpr
explicit
AsyncPool
(
Pool
& pool)
31
:
Pool
(pool.capabilities(), pool.layout()), pool_(pool) {}
32
35
async2::Poll<void*>
PendAllocate
(
async2::Context
& context);
36
37
private
:
39
void
*
DoAllocate
()
override
;
40
42
void
DoDeallocate
(
void
* ptr)
override
;
43
44
Pool
& pool_;
45
async2::Waker
waker_;
46
};
47
48
}
// namespace pw::allocator
pw::allocator::AsyncPool
Definition:
async_pool.h:28
pw::allocator::AsyncPool::DoDeallocate
void DoDeallocate(void *ptr) override
pw::allocator::AsyncPool::PendAllocate
async2::Poll< void * > PendAllocate(async2::Context &context)
pw::allocator::AsyncPool::DoAllocate
void * DoAllocate() override
pw::allocator::Pool
Definition:
pool.h:33
pw::async2::Context
Definition:
context.h:53
pw::async2::Poll
Definition:
poll.h:54
pw::async2::Waker
Definition:
waker.h:154
Generated by
1.9.6