Threads which hit a breakpoint but fail the condition are considered
not to be hit. But another thread might be hit at the same time and
actually stop. So we have to be sure to switch the first thread's
stop info to eStopReasonNone or we'll report a hit when the condition
failed, which is confusing.
I have a test for this, but it only tests the actual fix on systems that report
multiple threads hitting breakpoints on a given stop. Darwin
behaves this way, and w/o this fix the test fails on the first stop. But I give it
20 tries so this is likely to test the condition on systems that report multiple
hits less frequently. And for a system that serializes all stops, all this code is
moot anyway, and this is just testing breakpoint conditions.
usleep doesn't exist on windows. Use std::this_thread::sleep_for.