On 10/04/2011 07:21 AM, Jo wrote: > And it works... asynchronously. If I use this code in a larger script, the > code following it gets executed before the download is ready. This, of > course, creates problems since the rest of the code depends on what was > being downloaded. > > Is there a way to make it wait? I've been trying countless scenarios All to > no avail.
You can try something like this: Main.worker.submit(new Runnable() { public void run() { // all code that depends on the // downloaded referrers goes here } }); If this does not work, try wrapping it further in SwingUtilities.invokeLater(new Runnable() { public void run() { ... } }); or the other way around, possibly multiple times (alternating). Basically you have two threads, one is for network IO and expensive calculations (worker) and the other for the GUI and lightweight stuff (EDT). The script runs in EDT and DownloadReferrersAction.downloadReferrers(...) schedules a task for the worker. Both threads have a list of tasks that are processed in sequence, so the DownloadReferrersTask should be finished, when the worker thread works off the next task from the list. Hope this helps, the code isn't really written with quick and dirty scripts in mind. Paul _______________________________________________ josm-dev mailing list josm-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/josm-dev