The `DataType_ value is returned by shared pointer to simplify ownership semantics, particularly with respect to cleanup. It is important to not mistake that for exclusive ownership of the memory, and retain the return value of this function too long. For instance: TTripleBufferedDataIntBuffer;...int*MyCopy=IntBuffer.ExchangeProducerBuffer();(*MyCopy)=1;//OkIntBuffer.ExchangeProducerBuffer();//Memholding"1"nowavailabletoconsumerthread.(*MyCopy)=2;//Racecondition!