diff --git a/hipamd/src/hip_event.cpp b/hipamd/src/hip_event.cpp index ab428f76f4..9cc944f7f6 100644 --- a/hipamd/src/hip_event.cpp +++ b/hipamd/src/hip_event.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2015 - 2021 Advanced Micro Devices, Inc. +/* Copyright (c) 2015 - 2022 Advanced Micro Devices, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -251,13 +251,9 @@ hipError_t Event::addMarker(hipStream_t stream, amd::Command* command, bool reco } // namespace hip // ================================================================================================ hipError_t ihipEventCreateWithFlags(hipEvent_t* event, unsigned flags) { -#if !defined(_MSC_VER) unsigned supportedFlags = hipEventDefault | hipEventBlockingSync | hipEventDisableTiming | hipEventReleaseToDevice | hipEventReleaseToSystem | hipEventInterprocess; -#else - unsigned supportedFlags = hipEventDefault | hipEventBlockingSync | hipEventDisableTiming | - hipEventReleaseToDevice | hipEventReleaseToSystem; -#endif + const unsigned releaseFlags = (hipEventReleaseToDevice | hipEventReleaseToSystem); // can't set any unsupported flags. // can't set both release flags diff --git a/hipamd/src/hip_event_ipc.cpp b/hipamd/src/hip_event_ipc.cpp index 7daf249aba..f29bca5721 100644 --- a/hipamd/src/hip_event_ipc.cpp +++ b/hipamd/src/hip_event_ipc.cpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2015 - 2021 Advanced Micro Devices, Inc. +/* Copyright (c) 2015 - 2022 Advanced Micro Devices, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -23,6 +23,8 @@ #include "hip_event.hpp" #if !defined(_MSC_VER) #include +#else +#include #endif // ================================================================================================ @@ -32,13 +34,17 @@ hipError_t ihipEventCreateWithFlags(hipEvent_t* event, unsigned flags); namespace hip { bool IPCEvent::createIpcEventShmemIfNeeded() { -#if !defined(_MSC_VER) if (ipc_evt_.ipc_shmem_) { // ipc_shmem_ already created, no need to create it again return true; } + char name_template[] = "/tmp/eventXXXXXX"; +#if !defined(_MSC_VER) int temp_fd = mkstemp(name_template); +#else + _mktemp_s(name_template, sizeof(name_template)); +#endif ipc_evt_.ipc_name_ = name_template; ipc_evt_.ipc_name_.replace(0, 5, "/hip_"); @@ -48,7 +54,11 @@ bool IPCEvent::createIpcEventShmemIfNeeded() { sizeof(hip::ihipIpcEventShmem_t))) { return false; } + +#if !defined(_MSC_VER) close(temp_fd); +#endif + ipc_evt_.ipc_shmem_->owners = 1; ipc_evt_.ipc_shmem_->read_index = -1; ipc_evt_.ipc_shmem_->write_index = 0; @@ -64,9 +74,6 @@ bool IPCEvent::createIpcEventShmemIfNeeded() { return false; } return true; -#else - return false; -#endif } hipError_t IPCEvent::query() { @@ -219,21 +226,17 @@ hipError_t IPCEvent::OpenHandle(ihipIpcEventHandle_t* handle) { hipError_t hipIpcGetEventHandle(hipIpcEventHandle_t* handle, hipEvent_t event) { HIP_INIT_API(hipIpcGetEventHandle, handle, event); -#if !defined(_MSC_VER) + if (handle == nullptr || event == nullptr) { HIP_RETURN(hipErrorInvalidValue); } hip::Event* e = reinterpret_cast(event); HIP_RETURN(e->GetHandle(reinterpret_cast(handle))); -#else - assert(0 && "Unimplemented"); - HIP_RETURN(hipErrorNotSupported); -#endif } hipError_t hipIpcOpenEventHandle(hipEvent_t* event, hipIpcEventHandle_t handle) { HIP_INIT_API(hipIpcOpenEventHandle, event, handle); -#if !defined(_MSC_VER) + hipError_t hip_err = hipSuccess; if (event == nullptr) { HIP_RETURN(hipErrorInvalidValue); @@ -245,8 +248,4 @@ hipError_t hipIpcOpenEventHandle(hipEvent_t* event, hipIpcEventHandle_t handle) hip::Event* e = reinterpret_cast(*event); ihipIpcEventHandle_t* iHandle = reinterpret_cast(&handle); HIP_RETURN(e->OpenHandle(iHandle)); -#else - assert(0 && "Unimplemented"); - HIP_RETURN(hipErrorNotSupported); -#endif }