ForNeVeR / ForNeVeR/Cesium

Hygienic termination

Open
#479 1 comment 0 reactions 0 assignees View on GitHub
area:stdlib status:help-wanted
Dominant language
C#
Stars
451
Forks
49
Avg merge
13h 59m
Merged PRs (30d)
6

Description

Since we are starting to allocate persistent data that may outlive the runtime (see #478), it's time to discuss our cleanup policy.

I propose that we should try to support the running of multiple Cesium programs in the same runtime process, at least one after another, and also we should not leave any unused buffers or leak anything after ourselves, at least in correct programs.

In particular, I propose us to have some kind of a cleanup procedure that we'll call at the end of `main` (and, for any advanced hosting scenarios, the user would call themselves e.g. when loading a Cesium library).

That cleanup function would drop caches of `getenv()` and such, so that the runtime is ready for the next program run.

Contributor guide

Open the contributing guide

Research direction

Start by reading issue #478 and tracing how persistent data, caches such as getenv(), and runtime buffers are allocated. Define the cleanup procedure's responsibilities for repeated Cesium program runs and advanced hosting scenarios, then verify that correct programs leave no unused buffers or leaks.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
compilers
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.