Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Apr 2001 17:34:52 -0700
From:      "Hervey Wilson" <herveyw@dynamic-cast.com>
To:        "Mike Meyer" <mwm@mired.org>
Cc:        "Mark Giglio" <markgiglio@yahoo.com>, <questions@FreeBSD.ORG>
Subject:   Re: hotmail converted from freeBSD
Message-ID:  <007101c0cd1f$8d8afbb0$0101a8c0@chillipepper>
References:  <15077.62126.88738.629586@guru.mired.org><000d01c0cd1a$83109640$0101a8c0@chillipepper> <15078.6283.75950.909160@guru.mired.org>

next in thread | previous in thread | raw e-mail | index | archive | help
From: "Mike Meyer" <mwm@mired.org>

> Hervey Wilson <herveyw@dynamic-cast.com> types:
> > Developing a full-blown web server on Win9x wouldn't be a Good Thing
(TM).
> > The "thread per socket" model is not the recommended solution for
Windows
> > 2000 (see below). IIS does not use that model.
>
> [...]
> > Windows 2000 has an asynchronous IO subsystem that supports a model
where a
> > pool of threads can wait on completion objects and the operating system
> > wakes threads as required to handle IO events. This is typically a more
> > scalable than the "thread per socket" model although it not for the
faint
> > hearted developer ;)
>
> This sounds like a the "thread per socket" model generalized so that
> you have multiple threads waiting on one socket. Which leads to the
> question - where's the context for the socket go? I.e. - if I've
> processed the header of an HTTP request and am waiting on the data in
> the request to be available, where does the context information get
> stored?

You can associate a per-file handle completion key with a completion port
when you add the file handle to the port (note that socket handles are
treated as file handles). When a completion port is signalled you can
retrieve the completion key. So it's a matter of creating a hashtable (or
other) data structure that maps the completion key to your context
information.

>
> > Which leads me to ask a question: where can I find more information
about
> > thread models for FreeBSD ?
>
> -stable gives you posix threads, and you start with the pthread manual
> page for information on that. -current is in the midst of rearranging
> all this, and you need to follow the appropriate developer mail lists
> for information on that, though the API will continue to be posix
> threads.
>

Thanks. I know Linux doesn't have native kernel threads, does FreeBSD in
either -stable or -current ?


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?007101c0cd1f$8d8afbb0$0101a8c0>