Skip to content

Commit

Permalink
Refactor and simplify node finalization
Browse files Browse the repository at this point in the history
  • Loading branch information
nstiurca committed Jun 23, 2018
1 parent 5c72a54 commit 140f0f8
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 6 deletions.
2 changes: 0 additions & 2 deletions src/base.jl
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,3 @@ shutdown() = internal.checkcall(internal.rcl_shutdown())
ok() :: Bool = internal.rcl_ok()

instance_id() :: UInt64 = internal.rcl_get_instance_id()

function fini end
8 changes: 4 additions & 4 deletions src/node_base.jl
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@ mutable struct NodeBase
rcl_node_handle::Ref{internal.rcl_node_t}

NodeBase(node_name, namespace) = begin
rcl_node = finalizer(fini, Ref(internal.rcl_get_zero_initialized_node()))
rcl_node = Ref(internal.rcl_get_zero_initialized_node())

default_options = Ref(internal.rcl_node_get_default_options())

internal.checkcall(internal.rcl_node_init(rcl_node, node_name, namespace, default_options))

finalizer(fini, new(rcl_node))
new(rcl_node)
end
end

NodeBase(node_name) = NodeBase(node_name, "")
fini(rcl_node::Ref{internal.rcl_node_t}) = internal.checkcall(internal.rcl_node_fini(rcl_node); suppress_throw=true)
fini(nb::NodeBase) = fini(nb.rcl_node_handle)
Base.finalize(rcl_node::Ref{internal.rcl_node_t}) = internal.checkcall(internal.rcl_node_fini(rcl_node); suppress_throw=true)
Base.finalize(nb::NodeBase) = finalize(nb.rcl_node_handle)

mutable struct CallbackGroup
end
Expand Down

0 comments on commit 140f0f8

Please sign in to comment.