September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
42
Task/Generator-Exponential/Phix/generator-exponential.phix
Normal file
42
Task/Generator-Exponential/Phix/generator-exponential.phix
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
--
|
||||
-- demo\rosetta\Generator_Exponential.exw
|
||||
-- ======================================
|
||||
--
|
||||
bool terminate = false
|
||||
|
||||
atom res
|
||||
|
||||
procedure powers(integer p)
|
||||
integer i=0
|
||||
while not terminate do
|
||||
res = power(i,p)
|
||||
task_suspend(task_self())
|
||||
task_yield()
|
||||
i += 1
|
||||
end while
|
||||
end procedure
|
||||
|
||||
constant squares = task_create(routine_id("powers"),{2}),
|
||||
cubes = task_create(routine_id("powers"),{3})
|
||||
|
||||
atom square, cube
|
||||
task_schedule(cubes,1)
|
||||
task_yield()
|
||||
cube = res
|
||||
for i=1 to 30 do
|
||||
while 1 do
|
||||
task_schedule(squares,1)
|
||||
task_yield()
|
||||
square = res
|
||||
while cube<square do
|
||||
task_schedule(cubes,1)
|
||||
task_yield()
|
||||
cube = res
|
||||
end while
|
||||
if square!=cube then exit end if
|
||||
end while
|
||||
if i>20 then
|
||||
?square
|
||||
end if
|
||||
end for
|
||||
terminate = 1
|
||||
Loading…
Add table
Add a link
Reference in a new issue