File tree Expand file tree Collapse file tree 2 files changed +16
-4
lines changed
Expand file tree Collapse file tree 2 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,8 @@ if(PROJECT_IS_TOP_LEVEL)
1818endif()
1919
2020set(TODO stop_token) #-dk :TODO including that causes a linker error
21+ set(TODO suspend_never) #-dk :TODO including that causes ASAN errors
22+
2123set(EXAMPLES
2224 allocator
2325 doc-just
Original file line number Diff line number Diff line change @@ -15,13 +15,23 @@ void* operator new(std::size_t n) {
1515 std::cout << " global new(" << n << " )->" << p << " \n " ;
1616 return p;
1717}
18- void operator delete (void * ptr) noexcept { std::cout << " global operator delete()" << ptr << " \n " ; }
18+ void operator delete (void * ptr) noexcept {
19+ std::cout << " global operator delete()" << ptr << " \n " ;
20+ std::free (ptr);
21+ }
1922
2023int main () {
2124 struct resource : std::pmr::memory_resource {
22- void * do_allocate (std::size_t n, std::size_t ) override { return std::malloc (n); }
23- void do_deallocate (void * p, std::size_t n, std::size_t ) override { std::free (p); }
24- bool do_is_equal (const std::pmr::memory_resource& other) const noexcept override { return this == &other; }
25+ void * do_allocate (std::size_t n, std::size_t a) override {
26+ auto p{std::malloc (n)};
27+ std::cout << " resource::allocate(" << n << " , " << a << " ) -> " << p << " \n " ;
28+ return p;
29+ }
30+ void do_deallocate (void * p, std::size_t n, std::size_t a) override {
31+ std::cout << " resource::deallocate(" << p << " , " << n << " , " << a << " )\n " ;
32+ std::free (p);
33+ }
34+ bool do_is_equal (const std::pmr::memory_resource& other) const noexcept override { return this == &other; }
2535 } res{};
2636
2737 ex::sync_wait (ex::write_env (
You can’t perform that action at this time.
0 commit comments