-
Notifications
You must be signed in to change notification settings - Fork 30k
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
perf_hooks: remove useless calls in Histogram #41579
Conversation
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com>
I guess this might explain why the call was made ? On OSX: ../src/histogram.cc:162:5: error: ignoring return value of function declared with 'warn_unused_result' attribute [-Werror,-Wunused-result] |
Not sure why it did not fail locally, as seems to be reported for linux as well. Maybe my local compiler version? |
I think I understand what is going on here:
Our options would seem to be:
|
ToLocalChecked will crash if the result is empty so we'd only use that if we want to know that the Set failed versus just ignoring and continuing. |
No local test failures with ToLocalChecked so I think that means it's not expected that the Set can fail. |
@jasnell since I think you are the main contributor to this part of the code do you think I should:
Some additional explanation/discussion above. |
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.
This would crash if an exception is thrown between subsequent V8 calls in any of these binding functions. As a solution, instead of removing the IsEmpty() checks, we should pass on the return value of the Set() call from the lambdas and in
Lines 61 to 70 in 22792c8
template <typename Iterator> | |
void Histogram::Percentiles(Iterator&& fn) { | |
Mutex::ScopedLock lock(mutex_); | |
hdr_iter iter; | |
hdr_iter_percentile_init(&iter, histogram_.get(), 1); | |
while (hdr_iter_next(&iter)) { | |
double key = iter.specifics.percentiles.percentile; | |
fn(key, iter.value); | |
} | |
} |
while calling fn(), we should check if the returned value is an empty maybe and return early if that's the case.
+1 to what @RaisinTen said. If that's not an option, we should use |
I suggest just using |
Thanks, I'll look at @RaisinTen's suggestion and if that does not seem practical add the USE() |
Code higher up looks like get percentilesBigInt() {
if (!isHistogram(this))
throw new ERR_INVALID_THIS('Histogram');
this[kMap].clear();
this[kHandle]?.percentilesBigInt(this[kMap]);
return this[kMap];
} |
Returning the result of map-Set up to the JavaScript would only let us return undefined/null instead of an empty map, but I think For that reason I think just using |
Signed-off-by: Michael Dawson <mdawson@devrus.com>
Commit message will need updating to reflect the new approach. |
@RaisinTen pushed update to change to add USE() |
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
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Landed in d86dcaa |
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: nodejs#41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect, remove them Signed-off-by: Michael Dawson <mdawson@devrus.com> PR-URL: #41579 Reviewed-By: Yash Ladha <yash@yashladha.in> Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Richard Lau <rlau@redhat.com>
Coverity reported some calls that had no effect,
remove them
Signed-off-by: Michael Dawson mdawson@devrus.com