[Rpm-maint] [rpm-software-management/rpm] Add rpmlogOnce() and rpmlogReset() (PR #3417)

Panu Matilainen notifications at github.com
Thu Oct 31 08:59:24 UTC 2024


@pmatilai commented on this pull request.



> @@ -412,3 +415,43 @@ void rpmlog (int code, const char *fmt, ...)
 exit:
     errno = saved_errno;
 }
+
+int rpmlogOnce (uint64_t domain, const char * key, int code, const char *fmt, ...)
+{
+    int saved_errno = errno;
+    rpmlogCtx ctx = rpmlogCtxAcquire();
+    int newkey = 0;
+
+    if (ctx) {
+	wrlock lock(ctx->mutex);
+	newkey = !ctx->seen[domain][{code, key}]++;

Mind you, I don't find this unreadable, just needing a bit of thought too. I guess the thing that raises *my* alarms on first sight is the unchecked [] access which is fine with a map but undefined behavior in some others. Considering we're all relative C++ beginners here, some such remark would not be out of line.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/rpm-software-management/rpm/pull/3417#discussion_r1824104313
You are receiving this because you are subscribed to this thread.

Message ID: <rpm-software-management/rpm/pull/3417/review/2407403043 at github.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rpm.org/pipermail/rpm-maint/attachments/20241031/b8f6aa94/attachment.html>


More information about the Rpm-maint mailing list