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 over 9 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 over 9 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 over 9 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.