W3C home > Mailing lists > Public > www-lib@w3.org > January to March 1998

Re: is libwww thread safe?

From: Krishna Vedati <kvedati@Rational.Com>
Date: Mon, 23 Mar 1998 11:33:55 -0500
Message-Id: <199803231633.LAA29380@builder.nc.rational.com>
To: frystyk@w3.org
CC: www-lib@w3.org

Henrik Frystyk Nielsen (on Mon, Mar 23/1998) writes:
  :At 11:04 3/21/98 -0500, Krishna Vedati wrote:
  :>
  :>There are so many static variable strewn around many files in libwww (
  :HTNet.c
  :>HTHost.c., etc.) Are the functions in libwww re-entrant and thread safe?
  :What
  :>happens if two threads are trying to manipulate the same host object's
  :request 
  :>pipeline?  did anybody use libwww in a multi-threaded application? 
  :
  :libwww uses its own funny threads based on non-blocking sockets. It isn't
  :thread safe although most of the functions are reentrant.
  :
  :It would be a very nice task to integrate a locking model into libwww like
  :for example what comes with pthreads. It's really only in the core classes
  :HTHost, HTDNS, etc. that it is needed.

I am currently working with pthreads and semi-emulation of Pthreads on NT
(conditional variable and cond_signals) and w3lib. I am willing to post thread
patches to w3-lib. My only concern is I am not very well versed with all parts
of w3lib. Henrik, if you can point out exactly which modules I need to
concentrate on, I can take a stab at it. Also I need to understand how HTHost
event loop works. I am very confused about how Keep-alive connections
work. Also with 5.1j POST behavior is changed. Are there any plans to update
the docs and may be develop more(simple) example apps and possibly a tutorial. I am
willing to help if a bunch of us can get together and start on a tutorial. You
can mail me all the small examples/apps you have developed with w3lib. I can
compile a beginner's guide perhaps!


Thanks for the reply

sincerely

-krishna
Received on Monday, 23 March 1998 11:34:12 GMT

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