| 443 | } |
| 444 | |
| 445 | static void DeleteAll() |
| 446 | { |
| 447 | gMutex.lock(); |
| 448 | |
| 449 | Breakpoints *newBreakpoints = new Breakpoints(); |
| 450 | |
| 451 | gBreakpoints->RemoveRef(); |
| 452 | |
| 453 | // Write memory barrier ensures that newBreakpoints values are updated |
| 454 | // before gBreakpoints is assigned to it |
| 455 | write_memory_barrier(); |
| 456 | |
| 457 | gBreakpoints = newBreakpoints; |
| 458 | |
| 459 | // Don't need a write memory barrier here, it's harmless to see |
| 460 | // gShouldCallHandleBreakpoints update before gStepType has updated |
| 461 | gShouldCallHandleBreakpoints = (gStepType != STEP_NONE) || (sExecutionTrace==exeTraceLines); |
| 462 | |
| 463 | gMutex.unlock(); |
| 464 | } |
| 465 | |
| 466 | static void Delete(int number) |
| 467 | { |
nothing calls this directly
no test coverage detected