diff options
| author | Tor Aamodt <[email protected]> | 2020-02-27 15:08:17 -0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-02-27 15:08:17 -0800 |
| commit | e7fbfaa347c0acf8a6702c1e684a8e2ad8d3f733 (patch) | |
| tree | 18ff0403624bcdcf10a1742fb70175f798a4491d /libcuda | |
| parent | 6a97d1e857c37ef4b58a9a0d5c18960967e9d665 (diff) | |
| parent | f3ec23390a0798eab1426adf962487680ea89e93 (diff) | |
Merge pull request #137 from gangmul12/deadlock_fix
Deadlock fix from stream_manager
Diffstat (limited to 'libcuda')
| -rw-r--r-- | libcuda/cuda_runtime_api.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libcuda/cuda_runtime_api.cc b/libcuda/cuda_runtime_api.cc index 71b8722..a6edf9a 100644 --- a/libcuda/cuda_runtime_api.cc +++ b/libcuda/cuda_runtime_api.cc @@ -1746,6 +1746,7 @@ __host__ cudaError_t CUDARTAPI cudaEventRecord(cudaEvent_t event, cudaStream_t s if( !e ) return g_last_cudaError = cudaErrorUnknown; struct CUstream_st *s = (struct CUstream_st *)stream; stream_operation op(e,s); + e->issue(); g_stream_manager->push(op); return g_last_cudaError = cudaSuccess; } @@ -1758,7 +1759,11 @@ __host__ cudaError_t CUDARTAPI cudaStreamWaitEvent(cudaStream_t stream, cudaEven //reference: https://www.cs.cmu.edu/afs/cs/academic/class/15668-s11/www/cuda-doc/html/group__CUDART__STREAM_gfe68d207dc965685d92d3f03d77b0876.html CUevent_st *e = get_event(event); if( !e ){ - printf("GPGPU-Sim API: Warning: cudaEventRecord has not been called on event before calling cudaStreamWaitEvent.\nNothing to be done.\n"); + printf("GPGPU-Sim API: Error at cudaStreamWaitEvent. Event is not created .\n"); + return g_last_cudaError = cudaErrorInvalidResourceHandle; + } + else if(e->num_issued() == 0){ + printf("GPGPU-Sim API: Warning: cudaEventRecord has not been called on event before calling cudaStreamWaitEvent.\nNothing to be done.\n"); return g_last_cudaError = cudaSuccess; } if (!stream){ |
