| 257 | } |
| 258 | |
| 259 | int cDataWriter::checkWrite(long len) |
| 260 | { |
| 261 | const sDmLevelConfig *c = dm->getLevelConfig(level); |
| 262 | if (c!=NULL) { |
| 263 | if (c->growDyn) return 1; // if growDyn, a write should always succeed, except for that we run out of memory |
| 264 | // if nReaders in write level is 0 (dead end), then return 1 if noHang == 1 in write level |
| 265 | if (c->noHang == 2) return 1; |
| 266 | |
| 267 | //printf("'%s' checkwrite : %i %i\n",getInstName(),dm->getNreaders(level),c->noHang); |
| 268 | if ((dm->getNreaders(level) <= 0) && (c->noHang==1)) { |
| 269 | return 1; |
| 270 | } |
| 271 | } |
| 272 | |
| 273 | return ( dm->getNFree(level) >= len ); |
| 274 | } |
| 275 | |
| 276 | /* |
| 277 |
no test coverage detected