| 288 |
|
|
| 289 |
|
int misMatch = (rtFlags ^ curFlags) & RTmask; |
| 290 |
|
// updates based on toggled flags |
| 291 |
< |
if (misMatch & RTtraceSources) { |
| 291 |
> |
if (((misMatch & RTtraceSources) != 0) & (nsources > 0)) { |
| 292 |
> |
int nt = NThreads(); |
| 293 |
> |
if (nt > 1) { |
| 294 |
> |
if (FlushQueue() < 0) |
| 295 |
> |
return false; |
| 296 |
> |
SetThreadCount(1); |
| 297 |
> |
} |
| 298 |
|
int sn = nsources; |
| 299 |
|
if (rtFlags & RTtraceSources) { |
| 300 |
|
srcFollowed.NewBitMap(nsources); |
| 310 |
|
source[sn].sflags &= ~SFOLLOW; |
| 311 |
|
srcFollowed.NewBitMap(0); |
| 312 |
|
} |
| 313 |
+ |
if (nt > 1) SetThreadCount(nt); |
| 314 |
|
} |
| 315 |
|
if (misMatch & RTdoFIFO && FlushQueue() < 0) |
| 316 |
|
return false; |