and I know about this
Reference Said:
To prevent accidental hangs during world/Del() from preventing shutdown, a timeout is applied to any sleeping operations such as sleep, world.Export(), and so on. If the total time slept exceeds the timeout, world/Del() is aborted. Currently, this timeout is set at 30 seconds.
and I'm also pretty certain its not that (because it aborts prior to 30 seconds).
Edit:
Upon further investigation, it happens to procs that have "Set background = 1". If you have a complex save routine that is only called in world.Del(), I think it should be safe to hog the world.cpu and ignore background setting (this is the desired functionality, I believe).
Also, if I remove the background setting to force it to work, it takes way longer for Daemon to execute my "SaveWorld" than it does for single-thread seeker/server situation when I click Stop in Daemon (vs closing seeker in the latter situation). Not sure why!
Actually, Daemon seems to freeze and crap out after 6 "chunks" whereas the seeker/server will finish the save every time. 6 chunks would be 6 different savefiles, 75,000 total turfs (12500 per chunk) and a variable amount of objs (maybe a few hundred total in this case).
In other words, I have some code that only works when its hosted via seeker/server single thread.