-
Notifications
You must be signed in to change notification settings - Fork 28
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 codable interface for python objects, (Ingress|Egress)Ports python bindings, and other elements required for multi-segment. #18
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, this requested change is to revert segment::Object
back to having a pure virtual name()
method, which was neither your change nor mine, but I feel like we need to fix the change that ultimately caused protected member variable to pop up.
The other option would be to make m_name
private on segment::Object
and provided a protected setter. I'm maybe OK with duplicating the std::string
storage of the name property for some object that already store a name like Egress/IngressPort, but it still feels silly, since segment::Object::get_node
is still a pure virtual method, meaning the classes that derive from segment::Object
can provide name storage if needed and provide the override on name()
.
I would expect you'd see hangs when they are not connected as the "stop" signal, i.e. the closure of the channel is not allowed to propagate. We could probably do more to detect this condition earlier, i.e. incomplete connections, but we need to work under the constraint that Morpheus allows for unconnected Sources as part of Stage construction, i.e. there are no true Sinks. |
Double checking that its not specific to py::object ingress/egress types; but, if its not, this does seem like an oversight. I think it makes sense to emit a warning if something isn't connected, but an infinite hang shouldn't be possible. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, had a few random questions.
Thanks for filling out the pydocs
python/srf/_pysrf/include/pysrf/module_wrappers/shared_memory.hpp
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A couple of really small changes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. Lets make an issue to add the C++ Ingress/Egress optimization but this should be good to test now
@gpucibot merge |
Blocked by #75
pipeline.make_segment(segment, ["a", "b", "c"], ["x", "y", "z"], init)
-- does not directly support ingress / egress only signatures because we can't differentiate on type and using something like argument count has an ambiguous interpretation.builder.make_edge
behavior in Python.