Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cdt-dev] [DSF] GDBBackend.MonitorJob.kill not working?

> -----Original Message-----
> From: cdt-dev-bounces@xxxxxxxxxxx 
> [mailto:cdt-dev-bounces@xxxxxxxxxxx] On Behalf Of Vladimir Prus
> Sent: Thursday, April 19, 2012 9:49 AM
> To: CDT General developers list.
> Subject: Re: [cdt-dev] [DSF] GDBBackend.MonitorJob.kill not working?
> 
> On 19/04/12 17:43, Marc Khouzam wrote:
> > Hi,
> >
> > I have to agree this seems suspicious, but in the end it works.
> > Inside the call to run(IProgressMonitor monitor), there is 
> a call that
> > you didn't show in your mail:
> >
> >     fMonProcess.waitFor();
> >
> > this in turn calls wait() which releases the lock on fMonProcess.
> 
> But it does not seem like Process.waitFor is documented to do that?

Process.waitFor() is abstract and implemented by CDT's Spawner.waitFor()

	@Override
	public synchronized int waitFor() throws InterruptedException {
		while (!isDone) {
			wait();
		}
            ...
     }


> > I've actually tried it and things work as expected.
> > I'm not sure if this was thought out properly or if we got lucky :)
> 
> Did you actually saw 'interrupt' working? For me, -gdb-exit 
> is sent to GDB,
> which promptly exits, and waitFor is done. I could not even 
> get 'kill' to be called.

I expected that, so I hacked the code to call kill() when pressing
some UI button.  Then I saw that the running monitor job was
interrupted.  It was to make sure the fMonProcess monitor was
not still owned by the job.


> 
> - Volodya
> 
> -- 
> Vladimir Prus
> CodeSourcery / Mentor Graphics
> http://www.mentor.com/embedded-software/
> _______________________________________________
> cdt-dev mailing list
> cdt-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/cdt-dev
> 

Back to the top