> Le 28 déc. 2017 à 17:18, Richard Hipp <[email protected]> a écrit :
> 
> There is one thread per connection in the parent process, which allows
> the parent to manage multiple simultaneous incoming connections.  As
> each thread gets a complete HTTP request, it writes that request into
> a temporary file, uses fossil_system() to invoke the "fossil http"
> command to handle the request and store the reply into a second
> temporary file, then the thread reads the reply and sends it back over
> the wire.  Finally, the two temporary files are deleted.
> 
> The fork() approach is much nicer, but we don't have fork() on
> windows.  I'm open to suggests on better ways to do this.

Unless your intend is to be able to support thousands of simultaneous requests, 
there is few to earn in changing this scheme.  The scaling limitation would be 
that spawning of sub-processes.  Overcoming that is possible, but is a major 
redesign of the very clear and simple winhttp.c you currently have.

I wouldn't loose precious time in that area.

As pointed in my other message, the main culprit of occasional sluggish windows 
behaviour when fossil reaches out a windows fossil server is that the server 
inadvertently implements an IPv4-only listening socket while the client is 
dual-stacked. It can loose seconds (in the order of multiple times 10 or 20 
seconds) per IPv6 connection attempt not answered by the remote server before 
finally trying an IPv4 address and succeeding its connection.

-- 
Best Regards, Meilleures salutations, Met vriendelijke groeten,
Olivier Mascia


_______________________________________________
fossil-users mailing list
[email protected]
http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users

Reply via email to