Kills off Object and Fast Object Processes

This commit is contained in:
Fox McCloud
2019-04-23 23:53:40 -04:00
parent 1544756ce6
commit 0034e851a1
126 changed files with 350 additions and 396 deletions

View File

@@ -158,7 +158,7 @@
/datum/controller/process/proc/setup()
/datum/controller/process/proc/process()
/datum/controller/process/proc/process_decrepit()
started()
doWork()
finished()

View File

@@ -72,9 +72,9 @@ var/global/datum/controller/processScheduler/processScheduler
scheduler_sleep_interval = world.tick_lag
updateStartDelays()
spawn(0)
process()
process_decrepit()
/datum/controller/processScheduler/proc/process()
/datum/controller/processScheduler/proc/process_decrepit()
while(isRunning)
checkRunningProcesses()
queueProcesses()
@@ -154,7 +154,7 @@ var/global/datum/controller/processScheduler/processScheduler
/datum/controller/processScheduler/proc/runProcess(var/datum/controller/process/process)
spawn(0)
process.process()
process.process_decrepit()
/datum/controller/processScheduler/proc/processStarted(var/datum/controller/process/process)
setRunningProcessState(process)

View File

@@ -1,17 +0,0 @@
/datum/controller/process/fast_process/setup()
name = "fast processing"
schedule_interval = 2 //every 0.2 seconds
start_delay = 9
log_startup_progress("Fast Processing starting up.")
/datum/controller/process/fast_process/statProcess()
..()
stat(null, "[GLOB.fast_processing.len] fast processes")
/datum/controller/process/fast_process/doWork()
for(last_object in GLOB.fast_processing)
var/obj/O = last_object
try
O.process()
catch(var/exception/e)
catchException(e, O)

View File

@@ -1,28 +0,0 @@
/datum/controller/process/obj/setup()
name = "obj"
schedule_interval = 20 // every 2 seconds
start_delay = 8
/datum/controller/process/obj/started()
..()
if(!processing_objects)
processing_objects = list()
/datum/controller/process/obj/statProcess()
..()
stat(null, "[processing_objects.len] objects")
/datum/controller/process/obj/doWork()
for(last_object in processing_objects)
var/datum/O = last_object
if(istype(O) && !QDELETED(O))
try
// Reagent datums get shoved in here, but the process proc isn't on the
// base datum type, so we just call it blindly.
O:process()
catch(var/exception/e)
catchException(e, O)
SCHECK
else
catchBadType(O)
processing_objects -= O

View File

@@ -30,7 +30,7 @@ DECLARE_GLOBAL_CONTROLLER(ticker, tickerProcess)
lastTickerTime = currentTime
ticker.process()
ticker.process_decrepit()
/datum/controller/process/ticker/proc/getLastTickerTimeDuration()
return lastTickerTimeDuration

View File

@@ -0,0 +1,6 @@
//Fires five times every second.
PROCESSING_SUBSYSTEM_DEF(fastprocess)
name = "Fast Processing"
wait = 2
stat_tag = "FP"

View File

@@ -0,0 +1,5 @@
PROCESSING_SUBSYSTEM_DEF(obj)
name = "Objects"
priority = FIRE_PRIORITY_OBJ
flags = SS_NO_INIT
wait = 20

View File

@@ -1,7 +1,5 @@
//Used to process objects. Fires once every second.
//TODO: Implement fully when process scheduler dies
/*
SUBSYSTEM_DEF(processing)
name = "Processing"
priority = FIRE_PRIORITY_PROCESS
@@ -16,7 +14,7 @@ SUBSYSTEM_DEF(processing)
..("[stat_tag]:[processing.len]")
/datum/controller/subsystem/processing/fire(resumed = 0)
if (!resumed)
if(!resumed)
currentrun = processing.Copy()
//cache for sanic speed (lists are references anyways)
var/list/current_run = currentrun
@@ -24,15 +22,16 @@ SUBSYSTEM_DEF(processing)
while(current_run.len)
var/datum/thing = current_run[current_run.len]
current_run.len--
if(QDELETED(thing) || thing.process(wait) == PROCESS_KILL)
if(QDELETED(thing))
processing -= thing
if (MC_TICK_CHECK)
else if(thing.process(wait) == PROCESS_KILL)
// fully stop so that a future START_PROCESSING will work
STOP_PROCESSING(src, thing)
if(MC_TICK_CHECK)
return
*/
/datum/var/isprocessing = FALSE
/*
/datum/proc/process()
set waitfor = 0
STOP_PROCESSING(SSobj, src)
return 0
*/
return PROCESS_KILL