Project

General

Profile

Actions

Bug #2555

closed

Emission semantics of Face::onSend(Interest|Data) is too vague

Added by Davide Pesavento almost 10 years ago. Updated almost 9 years ago.

Status:
Rejected
Priority:
Normal
Assignee:
-
Category:
Faces
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:

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?

  1. before attempting to send
  2. after the send operation has been scheduled
  3. 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?

Actions #1

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?

Actions #2

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).

Actions #3

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.

Actions #4

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.

Actions #5

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.

Actions

Also available in: Atom PDF