summaryrefslogtreecommitdiff
path: root/modules/remote-hip/c++/remote.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/remote-hip/c++/remote.hpp')
-rw-r--r--modules/remote-hip/c++/remote.hpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/remote-hip/c++/remote.hpp b/modules/remote-hip/c++/remote.hpp
index 7263aaf..b814ff2 100644
--- a/modules/remote-hip/c++/remote.hpp
+++ b/modules/remote-hip/c++/remote.hpp
@@ -1,6 +1,7 @@
#pragma once
#include "common.hpp"
+#include "device.hpp"
namespace saw {
@@ -104,7 +105,12 @@ public:
*/
template<typename Schema, typename Encoding>
error_or<own<data_server<Schema, Encoding, rmt::Hip>>> data_listen(remote_address<rmt::Hip>& dev){
- return heap<data_server<Schema, Encoding, rmt::Hip>>(dev);
+ our<device<rmt::Hip>> dev = nullptr;
+ auto ins = devs_.emplace(std::make_pair(dev.get_device_id(), our<device<rmt::Hip>>{nullptr}));
+ if(ins.second){
+ ins.first->second = share<device<rmt::Hip>>();
+ }
+ return heap<data_server<Schema, Encoding, rmt::Hip>>(ins.first->second);
}
/**