123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- include "io.alh"
- include "primitives.alh"
- include "metamodels.alh"
- include "core_algorithm.alh"
- include "random.alh"
- Void function task_management():
- String taskname
- Element task_root
- Element task_frame
- Element output_value
- Element input_value
- Boolean gen_output
- // Initialize the basic formalisms before allowing new users
- initialize_MMs()
- initialize_core()
- taskname = "task_manager"
-
- while (True):
- gen_output = True
- while (True):
- if (bool_not(other_has_output("task_manager"))):
- while (dict_in(read_root(), taskname)):
- taskname = cast_string(random_string(20))
- break!
- elif (has_input()):
- taskname = input()
- if (dict_in(read_root(), taskname)):
- sleep(0.05)
- else:
- gen_output = False
- break!
- else:
- sleep(0.05)
-
- // Task is gone, so make sure that we create a new one already
- task_root = create_node()
- task_frame = create_node()
- output_value = create_node()
- input_value = create_node()
- dict_add_fast(task_root, "frame", task_frame)
- dict_add_fast(task_root, "globals", create_node())
- dict_add_fast(task_root, "output", output_value)
- dict_add_fast(task_root, "last_output", output_value)
- dict_add_fast(task_root, "input", input_value)
- dict_add_fast(task_root, "last_input", input_value)
- dict_add_fast(task_frame, "evalstack", create_node())
- dict_add_fast(task_frame, "returnvalue", create_node())
- dict_add_fast(task_frame, "phase", "init")
- dict_add_fast(task_frame, "IP", dict_read(dict_read(read_root(), "__hierarchy"), "__IP"))
- dict_add_fast(task_frame, "symbols", create_node())
- //Add this only at the end, as otherwise the task will already be detected
- dict_add_fast(read_root(), taskname, task_root)
- if (gen_output):
- output(taskname)
- return!
|