When you spawn an fthread now, it runs immediately.
If the fthread doesn't do any fthread like things, it is then
equivalent to an ordinary procedure.
A major advantage of this is that it will get srean off my back a bit :)
If you do this now:
for var i in 0 upto 9 do
spawn_fthread { var k = i; ... };
done
then k will be set to the value of i at the time of the spawn,
not 9 as it used to be (because i was 9 at the end of the loop
before any of the fthreads started running).
If the fthread does channel I/O all bets are off. Variable i could change.
But k will not (hopefully!). k gets eagerly initialised, and i can't change
until the fthread yields so the spawner thread can resume.
So now you can use the rule: if you want the current value of a variable
copy it up into the fthread.
[Closures still won't behave themselves though :]
--
john skaller
[email protected]
http://felix-lang.org
------------------------------------------------------------------------------
Flow-based real-time traffic analytics software. Cisco certified tool.
Monitor traffic, SLAs, QoS, Medianet, WAAS etc. with NetFlow Analyzer
Customize your own dashboards, set traffic alerts and generate reports.
Network behavioral analysis & security monitoring. All-in-one tool.
http://pubads.g.doubleclick.net/gampad/clk?id=126839071&iu=/4140/ostg.clktrk
_______________________________________________
Felix-language mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/felix-language