In Multiprocessing best practices, what is meant by the following?

Reuse buffers passed through a Queue
Remember that each time you put a Tensor into a multiprocessing.Queue, it has to be moved into shared memory. If it’s already shared, it is a no-op, otherwise it will incur an additional memory copy that can slow down the whole process. Even if you have a pool of processes sending data to a single one, make it send the buffers back - this is nearly free and will let you avoid a copy when sending next batch.
(from: http://pytorch.org/docs/master/notes/multiprocessing.html#reuse-buffers-passed-through-a-queue 24)

I’ve just written a simple dummy example below, but I’m not sure how buffers can be reused. I’m assuming the memory of the tensor t is being shared and not copied when transferred between p1 and p2 (because I’m using torch.multiprocessing). However, I’m not sure if it is possible for buffers to be reused since y goes out of scope.
How can I implement this best practice? Is the documentation suggesting p1 and p2 have access to another mp.Queue, which would be used to communicate references to the variables that are currently going out of scope and not being reused?
import torch
import torch.multiprocessing as mp


def fill(q):
  while True:
    t = torch.rand(10000, 10000)
    q.put(t)

def process(q1, q2):
  while True:
    x = q1.get()
    y = torch.pow(x, 10)
    z = torch.sum(y)
    q2.put(z)

if __name__ == '__main__':
  q1 = mp.Queue(maxsize=10)
  q2 = mp.Queue(maxsize=10)
  p1 = mp.Process(target=fill, args=(q1,))
  p2 = mp.Process(target=process, args=(q1, q2))
  p1.start()
  p2.start()
  
  # Never die
  while True:
    continue