Project

General

Profile

Feature #1865

Implement zero copy translation for move semantics and rvalue refs

Added by Eric Bohm 10 days ago. Updated 7 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
04/16/2018
Due date:
% Done:

0%


Description

The buffer ownership semantics required by the zero copy approach can be derived from C++ syntax.

If the user passes a const, they are already stating that it won't be modified, so we can use zero copy sender side semantics.

If the user passes an rvalue ref, then not only will they not modify it, the thing itself is going out of scope for them when the call is made. We can safely take over full management of that data.

The expected use case here would be a std::move called on a std::vector. We don't need to pack that into a message. Calling std::move on it means the user is expecting that vector to go out of scope and never seen again. We can create the callback to handle the cleanup when the RDMA operation is locally complete by making sure the callback keeps it in scope.

Similar logic applies to const parameters.


Subtasks

Feature #1868: Implement move semantics for object migrationNew

Also available in: Atom PDF