W3C home > Mailing lists > Public > www-lib@w3.org > April to June 1999

Re: When can you call HTHost_killPipe?

From: Michael Saunders <michael@amtec.com>
Date: Wed, 09 Jun 1999 08:43:35 -0700
Message-ID: <375E8BA7.B663996E@amtec.com>
To: www-lib@w3.org
Michael Saunders wrote:
> 
> The documentation HTReq.html documentation indicates that if I want to kill all
> requests I MUST use HTHost_killPipe. Currently my application checks for detects
> that the user wants to cancel the request while in the progress dialog callback.
> When I issue the HTHost_killPipe from within that callback it causes a
> segmentation fault "HTReader.c":201 within the HTReader_read function after
> returning from the call to my progress dialog callback. It appears that I am not
> allowed to call HTHost_killPipe from my callback because it pulls the rug out
> from under the library.
> 
> My questions are:
> 
>         1) From which callbacks should I be calling HTHost_killPipe to cancel
>            a request that will not causing the library to perform a segmentation
>            fault? Timer callbacks, progress callbacks, error callbacks, etc?
> 
>         2) What steps should I perform to kill requests and still have the
>            library in a sane state for subsequent requests at a later time?
> 

Well, I tried adding just recording the fact that the user wants to cancel a
request from within the progress callback and then I have a HTTimer wake up
and determine if a cancel is needed.

Using the timer mechanism to perform the kill pipe operation does not cause the
rug to be pulled out from under the library (like it did when I called killed
the pipe from the progress callback) however I still have a problem with
this procedure. If I use HTHost_killPipe (or HTNet_killAll outside the event
loop as Raffaele suggested) I am unable to process future requests with the
library. As soon as the library attempts to process my request the read stream
operation performs an error and the library performs a kill pipe operation and
issues a "Fatal Error: Data transfer interrupted" error message.

Are there any other calls that must be made to cleanup the library so it is
ready to be used again. None of the example applications seem to address this
issue. They either perform several requests and exit or they don't allow the
requests to be interrupted.

Thanks,
Michael

P.S. Just as a side comment, a very simple interactive X Windows and
Microsoft Windows example utility that creates a transfer dialog with
a progress slider and a cancel button would go a long way to showing
how to use many of the features of the library and how to integrate
a windowing system event loop with the library. Are there any plans
to do this (Henrik)? I realize the Amaya browser is available but that
is a big chunk to bite off for learning how to use the library.
Received on Wednesday, 9 June 1999 11:43:54 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 23 April 2007 18:18:29 GMT