blocked IO system call.
GENERALLY SPEAKING, you won't be able to force an ARBITRARY OS to give
you back control if it's actually in a blocked IO system call.
If you can on a specific OS, and it improves your app in some way
that's worth the complexity, then great. But I recommend avoiding it
as a design requirement! What may work on one platform may not work on
another.
That's why I suggest the default position is "you can't do that". If
you can, you should view it as a nice optimization. Optimizations come
with costs; if it's worth the complexity and potential for bugs and
corresponding testing burden -- go for it.
But first design your application to work as well as it can without
relying on it.
Then figure out if you even need it.
On Jan 7, 11:57 am, Streets Of Boston <flyingdutc...@gmail.com> wrote:
> In my experience, if you use AsynTasks (or Future<?> instances) to do
> your HTTP I/O in the background, calling "cancel(true)" on these
> instances will interrupt the HTTP I/O.
>
> If i'm not mistaken, the apache HttpClient is sensitive to calling
> interrupt() on the thread on which it is doing HTTP I/O.
>
> On Jan 7, 12:07 pm, ivan <istas...@gmail.com> wrote:
>
>
>
>
>
>
>
> > I'm wondering what the currently suggested method is for interrupting
> > a read operation of a socket input stream?
>
> > I know that traditionally the read could be interrupted by closing the
> > socket from another thread and catching an IOException, but I'm not
> > quite sure how to get at the socket from the apache classes.
>
> > Maybe I should use some sort of interruptible channel instead ... ?
>
> > Any links or help is greatly appreciated.
>
> > My code looks like this -- minus most of the error handling:
>
> > org.apache.http.impl.client.DefaultHttpClient
> > org.apache.http.client.methods.HttpGet
> > org.apache.http.HttpResponse
>
> > DefaultHttpClient client = new DefaultHttpClient(httpParameters);
>
> > HttpGet request = new HttpGet(Uri);
>
> > HttpResponse response = client.execute(request);
>
> > InputStream entityStream = response.getEntity().getContent();
>
> > try
> > {
> > bytesRead = entityStream.read(data);}
>
> > catch (IOException ex)
> > {
>
> > }- Hide quoted text -
>
> > - Show quoted text -
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscribe@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
No comments:
Post a Comment