| 721 | } |
| 722 | |
| 723 | af_err signal_memory_cleanup_fn(af_memory_manager manager) { |
| 724 | auto *payload = getMemoryManagerPayload<E2ETestPayload>(manager); |
| 725 | // Free unlocked memory |
| 726 | std::vector<void *> freed; |
| 727 | for (auto &entry : payload->table) { |
| 728 | int isUserLocked; |
| 729 | is_user_locked_fn(manager, &isUserLocked, entry.first); |
| 730 | if (!isUserLocked) { |
| 731 | void *ptr = entry.first; |
| 732 | af_memory_manager_native_free(manager, ptr); |
| 733 | payload->totalBytes -= payload->table[entry.first]; |
| 734 | freed.push_back(entry.first); |
| 735 | } |
| 736 | } |
| 737 | for (auto ptr : freed) { payload->table.erase(ptr); } |
| 738 | return AF_SUCCESS; |
| 739 | } |
| 740 | |
| 741 | af_err print_info_fn(af_memory_manager manager, char *c, int b) { |
| 742 | auto *payload = getMemoryManagerPayload<E2ETestPayload>(manager); |
no test coverage detected