2
0

Signal Fix: Added signal limit to allocSignal

1. Did not change the logic in allocSignal
2. Added guard to wait on signal limit

Change-Id: I78f29097e6a584b3c3d78319dac19869067bd1fe


[ROCm/clr commit: 1b2a24d0b8]
Este cometimento está contido em:
Aditya Atluri
2016-07-27 13:48:49 -05:00
ascendente b99410bd07
cometimento 96fe085832
2 ficheiros modificados com 14 adições e 2 eliminações
+10
Ver ficheiro
@@ -293,6 +293,8 @@ ihipDevice_t * ihipStream_t::getDevice() const
return ::getDevice(_device_index);
};
#define HIP_NUM_SIGNALS_PER_STREAM 32
//---
// Allocate a new signal from the signal pool.
@@ -301,8 +303,16 @@ ihipDevice_t * ihipStream_t::getDevice() const
ihipSignal_t *ihipStream_t::allocSignal(LockedAccessor_StreamCrit_t &crit)
{
int numToScan = crit->_signalPool.size();
crit->_signalCnt++;
if(crit->_signalCnt == HIP_NUM_SIGNALS_PER_STREAM){
crit->_signalCnt = 0;
this->wait(crit);
}
do {
auto thisCursor = crit->_signalCursor;
if (++crit->_signalCursor == crit->_signalPool.size()) {
crit->_signalCursor = 0;
}