W3C home > Mailing lists > Public > www-lib@w3.org > October to December 1998

Re: Problems with GET in event loop

From: olga <olga@goliath.eai.com>
Date: Tue, 22 Dec 1998 11:42:21 -0600 (CST)
Message-ID: <XFMail.981222114221.olga@eai.com>
To: Henrik Frystyk Nielsen <frystyk@w3.org>, www-lib@w3.org
Cc: olga <olga@goliath.eai.com>
Hi,

I had different code where I commented out the second fclose (long ago and
forgot about that change). So I guess that it is my fault :-(. 

I changed the code because after not closing the pointers an application ran
out of system's budget on open fps and did not behave properly. I thought that
since the library opened an fp that it is library's work to close it after
loading is performed. In previous profile (NewPreemtiveClient) everything worked
fine... 

I know - it is dangerous to mess with the code you do not completely
understand... Sorry about the confusion. And thanks for your time.

Olga. 


>         /* Set the output stream and start the request */
>         HTRequest_setOutputFormat(request, WWW_SOURCE);
>         HTRequest_setOutputStream(request, HTFWriter_new(request, fp,
> NO));
>         if (HTLoadAbsolute(url, request) == NO) {
>             fclose(fp);                               <---- here
>             return NO;
>         } else {
>             /*fclose(fp);*/
>             return YES;
          }



On 22-Dec-98 Henrik Frystyk Nielsen wrote:
> 
> 
> olga wrote:
>> I found the problem. In HTLoadToFile the file pointer was closed earlier
>> than
>> anything was written to file. Then writing to the file failed. So I just
>> commented out the closing of the file pointer in HTLoadToFile (HTAccess.c)
>> and
>> took care of that in the application.
>> 
>> Why it wrote the cache twice I have no idea - it doens't do it after it
>> writes
>> in file normally.
> 
> Great - I am wondering what the problem is so that we can fix it. I
> think the code in HTAccess.c HTLoadToFile(...) may cause the file to be
> closed twice (the handling of closing streams were changed some time
> ago). However, what I don't understand is why using non blocking sockets
> and the event loop would change that
> 
>         /* Set the output stream and start the request */
>         HTRequest_setOutputFormat(request, WWW_SOURCE);
>         HTRequest_setOutputStream(request, HTFWriter_new(request, fp,
> NO));
>         if (HTLoadAbsolute(url, request) == NO) {
>             fclose(fp);                               <---- here
>             return NO;
>         } else
>             return YES;
> 
> What part did you uncomment?
> 
> Thanks,
> 
> Henrik

----------------------------------
E-Mail: olga <olga@eai.com>
Date: 22-Dec-98
Time: 11:22:22

This message was sent by XFMail
----------------------------------
Received on Tuesday, 22 December 1998 12:38:53 EST

This archive was generated by hypermail pre-2.1.9 : Wednesday, 3 September 2003 17:59:26 EDT