[
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
>