Png-file as a HTTP-Response

Hello,

Im quite stuck with my little project of writting a File-Controller in
ruby.
The actual problem is, that if I stream a png-file to a client
TCP-Socket, the browser is getting the file realy slowly, so that it is
possible to see the file beeing build on the page. It doesn't matter if
I do this on a 100MbBits/s Server or doing it as localhost. I tried many
diffrent ways of writing to the client-socket: syswrite, puts, write and
all with 1024 buffer or without any buffer. The result is just the same,
a very slow answer.
I am not a ruby-expert and probably it is just a misstake of my own, but
I hope you will help me with this, because I am realy stuck...

thanks...

Attachments:
http://www.ruby-forum.com/attachment/4333/test.rb

···

--
Posted via http://www.ruby-forum.com/.

Robert Murmel wrote:

the browser is getting the file realy slowly
[...]

server = Thread.start {
  while (cl = serverSocket.accept)
     [...]
  end
}
while (true)
  true
end

This "while true; end" is known as a "busy loop" (google for this term)
and is not CPU-friendly. Perhaps it steals CPU cycles form your working
thread.

Remove this busy loop and the "server = Thread.start" line and have only
this:

   while (cl = serverSocket.accept)
      [...]
   end

and see if it solves the problem.

···

--
Posted via http://www.ruby-forum.com/\.

Albert Schlef wrote:

server = Thread.start {
  while (cl = serverSocket.accept)
     [...]
  end
}
while (true)
  true
end

This "while true; end" is known as a "busy loop" (google for this term)
and is not CPU-friendly. Perhaps it steals CPU cycles form your working
thread.

you can just replace it with:

server.join

···

--
Posted via http://www.ruby-forum.com/\.