Thanks Dianne for the very informative response, it really helped me understand the process vs. threading model of the AsyncTask. And I took your advice, I implemented a simple kill method in the C code, and I'm killin' away ! Woot!
On Dec 19, 11:00 am, Dianne Hackborn <[email protected]> wrote: > On Sat, Dec 19, 2009 at 5:51 AM, Hunter Peress <[email protected]> wrote: > > aSyncTask1.getAsyncTask2().getAsyncTask3().cancel(true); > > > The true means mayInterruptIfRunning > > > but, lo and behold, the NDK process is still running. I don't care how > > its done, but I need that NDK process to die when I ask it to. I'm > > thinking about kill-9 it through a popen call.. > > (1) There is no "NDK process". It is just a Java/POSIX/Linux thread, in > your OWN process, which has called down into your native code. If you don't > supply a way for that native code to find out it should terminate early and > cleanly exit, it isn't going to do so. This is your responsibility. > > (2) Killing a -thread- is utterly, completely broken. What if that thread > happened to be down in the memory allocator with its lock held when you did > this? Oops, you just hosed your entire process. > > (3) mayInterruptIfRunning == calling interrupt() on the thread. This is a > Java concept. If your native thread is not doing anything to check for this > Java state, and back out of its operation when found, then it will not do > anything. (Actually that largely holds true for Java as well.) > > (4) There is really nothing special about Android in this stuff. It is > important to understand standard Java threading, and/or POSIX threads and > use best practices for those. For example, AsyncTask sits on top of > FutureTask (from the standard Java library) for its core implementation. > > -- > Dianne Hackborn > Android framework engineer > [email protected] > > Note: please don't send private questions to me, as I don't have time to > provide private support, and so won't reply to such e-mails. All such > questions should be posted on public forums, where I and others can see and > answer them. -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

