On Thu, 12 Apr 2007 11:03:36 -0700 (PDT) [EMAIL PROTECTED] wrote: > > A totally idle mongrel seems to wake up about once a second doing > a little stuff like: > select(4, [3], [], [], {0, 999696}) = 0 (Timeout) > gettimeofday({1176400534, 112594}, NULL) = 0 > select(4, [3], [], [], {0, 0}) = 0 (Timeout) > time(NULL) = 1176400534 > time(NULL) = 1176400534 > gettimeofday({1176400534, 113841}, NULL) = 0 > gettimeofday({1176400534, 114138}, NULL) = 0 > over and over. > > I realize it's not a big deal to do so little so infrequently; but > wondering why it wakes up to do anything at all. Any reason > whatever it's polling for can't just be added to the select() > conditions?
Ruby uses select() to do it's IO processing and thread control, but only after you start one thread. Ruby doesn't put a timeout parameter into the select call unless there's a thread sleeping. If you have threads waiting for IO, and have someone running Mongrel from the console, and you don't have a thread calling sleep once a second, then... CTRL-C won't exit the process on most systems. So, most ruby code that uses threads throws in a bogus sleeping thread that doesn't do much. -- Zed A. Shaw, MUDCRAP-CE Master Black Belt Sifu http://www.zedshaw.com/ http://www.awprofessional.com/title/0321483502 -- The Mongrel Book http://mongrel.rubyforge.org/ _______________________________________________ Mongrel-users mailing list [EMAIL PROTECTED] http://rubyforge.org/mailman/listinfo/mongrel-users