Skip to content
Snippets Groups Projects

ENH: improved handling of regIOobject deletion (#1276)

Merged Mark OLESEN requested to merge fix-GL1276 into develop
  • remove registration and ownership before deleting a regIOobject from within objectRegistry to avoid possible recursion.

  • regIOobject destructor now removes any registered object from registry regardless if ownedByRegistry or not. It also removes always removes the ownership flag to avoid possible recursion.

  • the regIOobject::checkOut() now unconditionally clears file watches. These will only be there if the object is registered (a no-op for an unregistered object), but this additional safety is needed to manage case where the registration has been modified elsewhere (eg, by the objectRegistry).

Edited by Mark OLESEN

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • Author Maintainer

    Take a look and see if it makes sense to you. Ran with valgrind --leak-check=full with buoyantSimpleFoam (circuit cooling), pimpleFoam (mixerVessel) and simpleFoam (bump2D) as quick tests.

    Seems to look a fair bit better.

    @andy

    Edited by Mark OLESEN
  • Mark OLESEN marked as a Work In Progress

    marked as a Work In Progress

  • Mark OLESEN changed the description

    changed the description

  • Author Maintainer

    Discussed with @andy - will add additional comments and catch the direct deletion path

  • closed

  • Mark OLESEN unmarked as a Work In Progress

    unmarked as a Work In Progress

  • Mark OLESEN changed the description

    changed the description

  • assigned to @andy

  • reopened

  • Author Maintainer

    valgrind --leak-check=full buoyantSimpleFoam

    ==6567== HEAP SUMMARY:
    ==6567==     in use at exit: 32 bytes in 1 blocks
    ==6567==   total heap usage: 77,259 allocs, 77,258 frees, 24,582,355 bytes allocated
    ==6567== 
    ==6567== LEAK SUMMARY:
    ==6567==    definitely lost: 0 bytes in 0 blocks
    ==6567==    indirectly lost: 0 bytes in 0 blocks
    ==6567==      possibly lost: 0 bytes in 0 blocks
    ==6567==    still reachable: 32 bytes in 1 blocks
    ==6567==         suppressed: 0 bytes in 0 blocks
    ==6567== Reachable blocks (those to which a pointer was found) are not shown.
    ==6567== To see them, rerun with: --leak-check=full --show-leak-kinds=all
    ==6567== 
    ==6567== For counts of detected and suppressed errors, rerun with: -v
    ==6567== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
  • merged

    By Andrew Heather on 2019-06-04T13:32:32 (imported from GitLab project)

  • Admin mentioned in commit 42a98ce955253899d0cb65faee60811988d9f5c9

    mentioned in commit 42a98ce955253899d0cb65faee60811988d9f5c9

    By Andrew Heather on 2019-06-04T13:32:32 (imported from GitLab project)

  • Mark OLESEN mentioned in issue Community/external-solver#1

    mentioned in issue Community/external-solver#1

Please register or sign in to reply