Re: Handling Infinite Loops on Server Applications
En Wed, 02 May 2007 21:38:52 -0300, Paul Kozik <[EMAIL PROTECTED]> 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 -- http://mail.python.org/mailman/listinfo/python-list
Re: Handling Infinite Loops on Server Applications
On May 3, 1:38 am, "Paul Kozik" <[EMAIL PROTECTED]> wrote: > 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. > > 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). > > 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? > You could put a sleep in the loop: import time while True: # Sleep for 1 minute, or whatever... time.sleep(60) -- http://mail.python.org/mailman/listinfo/python-list
Handling Infinite Loops on Server Applications
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. 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). 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? -- http://mail.python.org/mailman/listinfo/python-list