Make platformImpl a vector

Related-To: NEO-4207
Change-Id: I85fa2d5a44160e1cf98321f9835a5173e59e479c
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
Mateusz Jablonski
2020-02-03 16:18:21 +01:00
committed by sys_ocldev
parent 3aec3d41c2
commit e77ed5f4fa
59 changed files with 143 additions and 138 deletions

View File

@@ -35,19 +35,24 @@
namespace NEO {
std::unique_ptr<Platform> platformImpl;
std::vector<std::unique_ptr<Platform>> platformsImpl;
bool getDevices(size_t &numDevicesReturned, ExecutionEnvironment &executionEnvironment);
Platform *platform() { return platformImpl.get(); }
Platform *platform() {
if (platformsImpl.empty()) {
return nullptr;
}
return platformsImpl[0].get();
}
Platform *constructPlatform() {
static std::mutex mutex;
std::unique_lock<std::mutex> lock(mutex);
if (!platformImpl) {
platformImpl.reset(new Platform());
if (platformsImpl.empty()) {
platformsImpl.push_back(std::make_unique<Platform>());
}
return platformImpl.get();
return platformsImpl[0].get();
}
Platform::Platform() {