The answer can be found in the eclipse source code in the ThreadEventHandler method. There is a queue of suspended threads, as shown below:
private Set fThreadQueue = new LinkedHashSet();
Further down, every time a breakpoint hits, a paused thread is added to this queue:
protected void handleSuspend(DebugEvent event) { ... queueSuspendedThread(event); ... }
Method to get the following suspended stream:
protected synchronized IThread getNextSuspendedThread() { if (!fThreadQueue.isEmpty()) { return (IThread) fThreadQueue.iterator().next(); } return null; }
Thus, the answer is no, there is no control over the order; it will be strictly in the order in which each thread hits the breakpoint and is added to the base queue.
Joe elleson
source share