Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add unsafe tree and list insert functions to commotiond and use where appropriate. #94

Merged
merged 3 commits into from Feb 25, 2014

Conversation

jheretic
Copy link
Member

Commotiond, for efficiency reasons, tries to avoid doing copies of data structures where possible. Therefore, the network responses to some commands are serialized directly out of the standing data structures where it stores, for instance, profile information. Unfortunately, a recent bugfix revealed that halloc is not behaving as expected, and so some of those standing data structures were getting deleted as responses were getting freed. This pull request adds unsafe versions of the tree and list insert functions, which are functionally identical other than that they don't attempt to hattach new objects to those data structures; memory management is left up to the programmer. These are now used within certain areas of daemon.c so that we can still free all response objects but still access the standing data structures with impunity without worry of freeing them by accident.

To test:

  1. Run commotion help and verify that the output is as expected.
  2. Run it a second time and verify that the 'help' output is identical.
  3. Repeat steps 1 and 2 for the 'get', 'profiles' and 'state' commands.

@jheretic jheretic added this to the 1.1 milestone Feb 25, 2014
@jheretic jheretic assigned dismantl and unassigned hawkinswnaf Feb 25, 2014
jheretic added a commit that referenced this pull request Feb 25, 2014
Add unsafe tree and list insert functions to commotiond and use where appropriate.Tested by @dismantl.
@jheretic jheretic merged commit 35c0935 into master Feb 25, 2014
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants