Bug #2555
closedEmission semantics of Face::onSend(Interest|Data) is too vague
0%
Description
Current doxygen says:
/// fires when an Interest is sent out
signal::Signal<Face, Interest> onSendInterest;
/// fires when a Data is sent out
signal::Signal<Face, Data> onSendData;
When are they emitted exactly?
- before attempting to send
- after the send operation has been scheduled
- when the result of the operation is known
(2 and 3 are indistinguishable if the send path is blocking/synchronous)
In the second and third cases, are the signals emitted only if the operation was successful or even in case of failure?
Updated by Alex Afanasyev almost 10 years ago
At least in StreamFace (TCP, Unix) and EthernetFace these events fire before attempting to send. So, I think it make sense to explicitly state and make sure everywhere that it is event "before" attempting to send. Or even to track the attempt to send data/interest from higher levels.
Do you want just clarify the documentation or you want to change the behavior?
Updated by Davide Pesavento almost 10 years ago
Alex Afanasyev wrote:
Do you want just clarify the documentation or you want to change the behavior?
I want to understand what were the original intentions. If no one remembers or if there never was a clear specification, let's decide one now that makes sense. We could even have separate signals for "before send" and "after send" (whatever that means).
Updated by Davide Pesavento almost 10 years ago
Also note that these signals are used to increment the face counters, which I'm not sure it's a good idea given the current emission behavior.
Updated by Junxiao Shi over 9 years ago
This bug would become irrelevant if #2222 note-22 is adopted, because that design does not contain an equivalent for Face::onSendX
.
Face::onSendX
is only used for incrementing counters, which is implemented in Link
base class of that design.
Updated by Junxiao Shi almost 9 years ago
- Status changed from New to Rejected
Face::onSendX
signals are deleted in #3172. This issue is no longer relevant.