KillingSpark / rustysd

A service manager that is able to run "traditional" systemd services, written in rust
MIT License
506 stars 15 forks source link

Merge results of Redesign1 into master #36

Closed KillingSpark closed 4 years ago

KillingSpark commented 4 years ago

The first bigger redesign has been finished. It

  1. reduces the amount of locking needed to get to static info like dependencies between units and config.
  2. separates parsed config from the actual internal model. Transformation between parsed config <-> internal model reorders some of the information for clearer separation of concerns (e.g. in the parsed config wanted and wanted_by are in completely different sections)
  3. pushes the state transitions of Units into the impl Unit {} block. This ensures that only threads with exclusive access to units make changes to the status.