Skip to content

GitLab

  • Menu
Projects Groups Snippets
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • Trac Trac
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Issues 246
    • Issues 246
    • List
    • Boards
    • Service Desk
    • Milestones
  • Monitor
    • Monitor
    • Metrics
    • Incidents
  • Analytics
    • Analytics
    • Value stream
  • Wiki
    • Wiki
  • Activity
  • Create a new issue
  • Issue Boards
Collapse sidebar
  • Legacy
  • TracTrac
  • Issues
  • #32408

Closed (moved)
(moved)
Open
Created Nov 06, 2019 by Nick Mathewson@nickm🍬

Handle options_act_reversible() in new config system.

Our new configuration system needs to handle options_act_reversible too.

But on further examination, there are only two actual "reversible" pieces of options_act_reversible:

  • Adjusting the logs.
  • Adjusting the listeners.

The remainder of the function is all about handling "irreversible", immutable options that need to be handled before we can mess with the logs or listeners.

I think this means that we want to split this function into two pieces: one part that handles startup-only initialization, and one that handles truly reversible option changes.

I think that the callback for the startup-only initialization should be called options_set_init(), options_set_onece(), options_set_early(), or something like that.

The callbacks for truly reversible options should look something like this:

int act_reversible(const void *old_options, void *new_options, void **transaction_state_out);
int commit(const void *old_options, void *new_options, void *transaction_state);
int rollback(const void *old_options, void *rejected_options, void *transaction_state);
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking