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