<div class="gmail_quote">Hi list.<br>
I&#39;ve been doing a simple ray tracer[1] and decided to parallelize it using<br>
futures.<br>
<br>
I&#39;ve tried to use flonums everywhere and added (in-range) to loops [3]<br>
(over x and y coordinates).<br>
<br>
The problem is that execution of future is blocked seriously.<br>
(apparently by the value primitive) [2]<br>
<br>
Are there any ideas why it doesn&#39;t work?<br>
<br>
I use racket v5.3.3.<br>
<br>
[1] Complete source code: <a href="http://pastebin.com/EGSzR1Tv" target="_blank">http://pastebin.com/EGSzR1Tv</a><br>
<br>
[2] Future visualizer screenshot: <a href="http://ompldr.org/vaGpiaQ" target="_blank">http://ompldr.org/vaGpiaQ</a><br>
    Invoked via<br>
    (require future-visualizer)<br>
    (visualize-futures (run-no-render))<br>
<br>
[3] Source code for main loop:<br>
(define (render-scene-dummy object-list)<br>
  (let* ([f (future<br>
           (lambda ()<br>
             (for* ([x (in-range (/ screen-width 2))]<br>
                    [y (in-range screen-height)])<br>
               (let* ([ray-res (ray-cast x y object-list)]<br>
                      [pix-col (point-col (int-res-p ray-res))])<br>
                 #t))<br>
             ))])<br>
<br>
    (for* ([x (in-range (/ screen-width 2) screen-width)]<br>
           [y (in-range screen-height)])<br>
      (let* ([ray-res (ray-cast x y object-list)]<br>
             [pix-col (point-col (int-res-p ray-res))])<br>
        #t))<br>
    (touch f)))<br>
</div><br><br clear="all"><br>-- <br>With best regards,<br>Dmitry<br>