ID:144553
 
Ok, so I made a proc that it raises after the world is created (world/new())
this is how I call it:
world
New()
(some stuff here, not important just some list creations)
spawn() DemonSchoolCycle()


Then this is the proc:
proc/
DemonSchoolCycle()
(some sleep() stuff, new turf stuff and del turf stuff)
spawn() DemonSchoolCycle()


And this is the error:
Infinite loop suspected--switching proc to background.
If it is not an infinite loop, either do 'set background=1' or set world.loop_checks=0.
proc name: DemonSchoolCycle (/proc/DemonSchoolCycle)
source file: Demon School Cycle.dm,18
usr: null
src: null
call stack:
DemonSchoolCycle()
: New()

Line 18: if(DE.loc==locate(37,120,1))
DE is var/turf/Teleports/DemonSchool_Entrance/DE in world

spawn(1) DemonSchoolCycle()


If you don't put a number inside the spawn, it's not even going to wait a mili-second. So it'll just keep activating the proc.
In response to Stephen-San
No. You should not have to set world.loop_checks to 0. That's more of a hacky-feeling workaround for a problem that needs fixing. A good idea would be setting background to 1 in the proc in question, just so that it doesn't hog up all of the CPU and gives other running procs time to go, and add a small delay in between each call, as Stephen suggested.

I do believe that they might want to revise the runtime a bit, because you shouldn't really set world.loop_checks to 0 unless you actually know what you're doing.
Look up while(). That's a better coding practice than recalling a procedure forever.