HackerExperience / Helix

GNU Affero General Public License v3.0
53 stars 10 forks source link

Support different types of processes lifecycles on TOP #324

Open renatomassaro opened 7 years ago

renatomassaro commented 7 years ago

Process lifecycles:


Current TOP, rewritten at #322, only supports direct. Adding both recursive and daemon should require minimal changes to the allocator, and a new interfarce under Resourceable (in order for recursive protects to select the next target).

Edit: support for recursive process added at #410

renatomassaro commented 6 years ago

recursive process type was implemented at #410, refer to LogRecoverProcess for usage example.

Implementation of recursive process is based on the SIGRETARGET signal. When the process objective is reached, the process may perform its side-effect (e.g. pop out a log revision; mark a file/connection as found; etc) and then send the retarget signal.

When SIGRETARGET signal is received, Processable.retarget/2 is called. It's up to each process to define how the next iteration should go, but basically during the retarget step, the process may change any object target(s) and its objectives, effectively creating a new iteration.

Note that, to avoid race conditions, one should issue the SIGRETARGET signal only after the side-effect has been committed (performed).

Deathslayer222 commented 6 years ago

Wo4king on the game but when do we get refunds and replays on the hacker experience 2 discord ur over due on ur 3-5 business days

On Thu, Aug 16, 2018, 06:09 Renato Massaro notifications@github.com wrote:

recursive process type was implemented at #410 https://github.com/HackerExperience/Helix/pull/410, refer to LogRecoverProcess for usage example.

Implementation of recursive process is based on the SIGRETARGET signal. When the process objective is reached, the process may perform its side-effect (e.g. pop out a log revision; mark a file/connection as found; etc) and then send the retarget signal.

When SIGRETARGET signal is received, Processable.retarget/2 is called. It's up to each process to define how the next iteration should go, but basically during the retarget step, the process may change any object target(s) and its objectives, effectively creating a new iteration.

Note that, to avoid race conditions, one should issue the SIGRETARGET signal only after the side-effect has been committed (performed).

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/HackerExperience/Helix/issues/324#issuecomment-413509096, or mute the thread https://github.com/notifications/unsubscribe-auth/ALKQCT8eu7NuSmrWzaEpwMutAZeGLKyPks5uRVMFgaJpZM4QKi3k .