April 1999
- In-Game Languages Eli Stevens {KiZurich}
- In-Game Languages Per Vognsen
- In-Game Languages Chris Gray
- In-Game Languages Caliban Tiresias Darklock
- In-Game Languages Eli Stevens {KiZurich}
- In-Game Languages Matthew D. Fuller
- In-Game Languages Mik Clarke
- In-Game Languages Michael Hohensee
- In-Game Languages Ben Greear
- In-Game Languages Michael Hohensee
- In-Game Languages Mik Clarke
- In-Game Languages Hans-Henrik Staerfeldt
- In-Game Languages David Bennett
- In-Game Languages Richard Woolcock
- In-Game Languages Hans-Henrik Staerfeldt
- In-Game Languages Caliban Tiresias Darklock
- In-Game Languages Hans-Henrik Staerfeldt
- In-Game Languages Andrew Ritchie
- In-Game Languages Matthew D. Fuller
- In-Game Languages adam@treyarch.com
- forward: consistency Ola Fosheim Grøstad
- Confined Gameworld Ling
- Confined Gameworld Caliban Tiresias Darklock
- Confined Gameworld Richard Woolcock
- Confined Gameworld Eli Stevens {KiZurich}
- Confined Gameworld The Wildman
- Confined Gameworld Koster, Raph
- User centered? Ola Fosheim Grøstad
- User centered? Caliban Tiresias Darklock
- User centered? Marc Bowden
- User centered? Adam Wiggins
- User centered? Richard Woolcock
- User centered? Benjamin D. Wiechel
- User centered? Koster, Raph
- target audience Matthew Mihaly
- target audience Caliban Tiresias Darklock
- target audience Marc Bowden
- Fw: Self-organizing worlds (was: Elder Games) Kylotan
- Fw: Self-organizing worlds (was: Elder Games) Matthew Mihaly
- ScryMUD 1.8.11 released. Ben Greear
- Mud driver architecture info B. Scott Boding
- Blending graphics with text u1391470
- Blending graphics with text Laurel Fan
- Blending graphics with text Kylotan
- Blending graphics with text Chris Gray
- Blending graphics with text J C Lawrence
- Blending graphics with text Caliban Tiresias Darklock
- Blending graphics with text Chris Gray
- Blending graphics with text Ola Fosheim Grøstad
- Blending graphics with text Hans-Henrik Staerfeldt
- Blending graphics with text Mik Clarke
- Blending graphics with text u1391470
- Blending graphics with text claw@kanga.nu
- Blending graphics with text Alex Stewart
- Blending graphics with text J C Lawrence
- Virtual machine design Shane King
- Virtual machine design Alex Stewart
- Virtual machine design Jo Dillon
- Virtual machine design Ben Greear
- Virtual machine design Niklas Elmqvist
- Virtual machine design Shane King
- Virtual machine design Ben Greear
- Virtual machine design claw@kanga.nu
- Virtual machine design Alex Stewart
- Virtual machine design Felix A. Croes
- Virtual machine design Eli Stevens {KiZurich}
- Virtual machine design Mik Clarke
- Virtual machine design Schubert, Damion
- Virtual machine design Ben Greear
- Virtual machine design Ben Greear
- Virtual machine design Felix A. Croes
- Virtual machine design Matthew Mihaly
- Virtual machine design Hans-Henrik Staerfeldt
- Virtual machine design claw@kanga.nu
- Virtual machine design Mik Clarke
- Virtual machine design Oliver Jowett
- Virtual machine design Chris Gray
- Virtual machine design claw@kanga.nu
- Virtual machine design Chris Gray
- Virtual machine design Ola Fosheim Grøstad
- Virtual machine design claw@kanga.nu
- Virtual machine design Petri Virkkula
- Virtual machine design Ben Greear
- Virtual machine design Chris Gray
- Virtual machine design Ola Fosheim Grøstad
- Virtual machine design Nathan F Yospe
- Virtual machine design Ola Fosheim Grøstad
- Virtual machine design Petri Virkkula
- Virtual machine design Jon A. Lambert
- Virtual machine design Koster, Raph
- Virtual machine design Jon A. Lambert
- Virtual machine design Chris Gray
- Rebooting (was: Virtual machine design) Eli Stevens {KiZurich}
- Game design highpoints (was Virtual machine design) claw@kanga.nu
- Sockets Quzah [softhome]
- Sockets Alex Stewart
- Sockets Quzah [softhome]
- Sockets Jo Dillon
- Sockets Jon A. Lambert
- Sockets Jon A. Lambert
- Sockets Chris Gray
- Sockets Petri Virkkula
- Sockets Chris Gray
- Sockets Jon A. Lambert
On 9 May 99,, Chris Gray wrote:
>
> The WIN32 interface in particular is one which essentially forces the
> programmer to use multiple threads.
There is no NEED to use multiple threads in Win32. Non-blocking sockets
perform exactly like their BSD counterparts,
> Consider the "asynchronous I/O"
> features available. You can use their completion routines stuff, but they
> aren't really asynchronous because they are only triggered when some
> I/O related system call completes (e.g. a poll). You can use their
> interface which sends a message on call completion, but for that you
> have to have an active window, which is something a MUD server (or http
> server or ftp server, etc.) is not likely to want.
Yes. This is true. Asynchronous sockets require you to use the Windows
messaging system. Thus they cannot be used from a console application.
And that's why I ranked this method third in performance. Yet it still
performs much better than non-blocking. Comparing this particular
mechanism with anything on *nixes is useless, since it doesn't exist.
> for that, WaitForMultipleObjects, has a fixed, hard limit of 64 handles
> that it can wait on. If you want more than that, you have to either
> start polling (ugh!) or have multiple threads, each waiting for groups
> of handles.
Polling (ugh!)? But aren't you doing that in your non-blocking sockets
apps? I can't imagine using WaitForMultipleObjects handles in this
manner. This is the same (or worse because of the limitation) as single-
threaded non-blocking sockets. That is, it would be a "poor"
implementation. I use WaitForMultipleObjects on two handles. One is on
the socket input event and one is on the muds output work queue. The
thread is fired when data arrives on the socket OR when data arrives on
the output queue. If I ever need to deal with huge amounts of
connections I can pool multiple sockets and work queues to threads. I
don't know what the "huge" number would be yet; 100?, 200?, 500?, 1000?
> So, I agree, that if you are programming under the WIN32
> API, you will get better performance by using threads than if you
> didn't, but *that is a result of the nature of the API, rather than any
> inherent advantage of threads*.
I KNOW that threading I/O performs better on Win32.
The question is "Does threading I/O perform better on Linux/BSD?"
If someone would ACTUALLY DO IT in Linux/BSD, perhaps the question could
be answered rather than theorized at.
--
--* Jon A. Lambert - TychoMUD Email:jlsysinc@ix.netcom.com *--
--* Mud Server Developer's Page <http://pw1.netcom.com/~jlsysinc> *--
--* To fight the empire is to be infected by its derangement. Whosoever *--
--* defeats part of the empire becomes the empire; it proliferates like a *--
--* a virus... thereby it becomes its enemies." -- P.K. Dick *--
- Sockets Jon A. Lambert
- Sockets Caliban Tiresias Darklock
- ScryMUD 1.8.13 snapshot released. Ben Greear
- Interview I did that may interest you Koster, Raph
- Censorship Greg Munt
- Censorship Ben Greear
- Censorship Matthew Mihaly
- Censorship Shawn Halpenny
- Censorship Darren Henderson
- Censorship Quzah [softhome]
- Censorship Hans-Henrik Staerfeldt
- Python B. Scott Boding
- Python Gaffney, Jeremy
- AW: Censorship Hofbauer Heinz
- AW: Censorship Matthew Mihaly
- AW: Censorship Damion Schubert
- Censorship, Virtual v Artificial Worlds, Python Greg Munt
- Censorship, Virtual v Artificial Worlds, Python Matthew Mihaly
- Censorship, Virtual v Artificial Worlds, Python Ben Greear
- Censorship, Virtual v Artificial Worlds, Python Matthew Mihaly
- Censorship, Virtual v Artificial Worlds, Python Matthew Mihaly
- Censorship, Virtual v Artificial Worlds, Python Ben Greear
- Censorship, Virtual v Artificial Worlds, Python Dan
- Censorship, Virtual v Artificial Worlds, Python Matthew Mihaly
- Censorship, Virtual v Artificial Worlds, Python Marian Griffith
- Censorship, Virtual v Artificial Worlds, Python Benjamin D. Wiechel
- Censorship & Its Impact On World Immersion Greg Munt
- Censorship & Its Impact On World Immersion Matthew Mihaly