Этот дизайн плохо пахнет для меня. Похоже, вы предполагаете, что поток останется связанным с конкретным процессором. Это не гарантировано. Да, поток обычно может оставаться на одном процессоре, но это не обязательно, и в конечном итоге ваша программа будет иметь поток, который переключает процессоры. Это может случаться не часто, но в конечном итоге это произойдет. Если ваш дизайн не принимает это во внимание, то вы, скорее всего, в конечном итоге столкнетесь с какой-то сложной для отслеживания ошибкой.
Позвольте мне задать этот вопрос, что произойдет, если память будет выделена на одном процессоре и освобождена на другом? Как ваша куча справится с этим?