I've got a small test application here creating a GUI in the main thread and starting two new threads within the window constructor. In both threads there's a sleep() (one with 2 the other with 4 seconds) to keep them running a bit. I then put a breakpoint at the start of the constructor and into the 4-second- seems to continue the main thread once the breakpoint in the 4-second-sleep thread is hit. So basically the order is: create and start first extra thread <n> create and start second extra thread <n> some gui code <n> break into second extra thread <n> sleep(4) <n> At this point the gui from the main thread comes up, which only happens if the main thread is continue'd and not halted anymore.
Yes, a "next" will resume all other threads. See "set scheduler-locking" for your options here. (I forget offhand if this was in 6.8 or whether it is only in CVS gdb.)
scheduler-locking was added to gdb over 10 years ago. I'm closing this. Please reopen if you have more info indicating a problem.