Handling Infinite Loops on Server Applications
Gabriel Genellina
gagsl-py2 at yahoo.com.ar
Thu May 3 09:14:01 EDT 2007
En Wed, 02 May 2007 21:38:52 -0300, Paul Kozik <zykhou at gmail.com> escribió:
> I'm working with a small server program I'm writing for a small video
> game. The main class constructor starts a thread that handles socket
> connections, which itself starts new threads for each user connection.
And what's the purpose of the main thread then?
> The actual server program itself however needs to wait in the
> background, but continue looping as not to close the running threads.
> The problem is, simply running a [while True: pass] main loop in this
> style eats precious CPU cycles (and for nothing). If it waits for
> input, such as a socket.accept() or raw_input(), this problem does not
> occur (obviously because it's not constantly looping).
Exactly. Use the network handling thread as the main thread, by example.
> What would be the best way to handle this, perhaps in a fashion
> similar to how most server programs are handled (with arguments such
> as [apache start], [apache stop])? Any guides towards this type of
> application development?
See the asyncore module, or any of the predefined servers in the Python
library.
--
Gabriel Genellina
More information about the Python-list
mailing list