From: Yohanes Santoso Date: 2006-07-11T01:42:01+09:00 Subject: Re: While loops "Erich Lin" writes: > If I have this snippet of code for the main page that loads: > > def index > while 1 > logger.info("hi") > end > end > > Then, I close the browser that opened that page, I notice that the > logger continues to print "hi" to the file (using tail -f). Is there a > way to stop the server from running such actions when the browser is > closed? (The logger.info was just an example. It could be anything > else) > > Thanks When you close a page showing on the browser, the browser may or may not close the connection to your server. If it does not, then you can't tell whether a page has been closed. If it does, then you have to perform IO operation to detect the closing. If you really care, you could surround the critical code with guard code that tries to detect connection closing (IO::select for read-readyness and performing IO#sysread(nonzero length) on such IO object returns a 0-length string). But there is still no fool-proof way to detect a user closing a page. (Not even using javascript to handle window close event since that won't be invoked when the browser is closed). YS.