s3:profile: make use of tevent_cached_getpid() in performance critical code
authorStefan Metzmacher <metze@samba.org>
Mon, 25 Jul 2022 12:29:35 +0000 (14:29 +0200)
committerJeremy Allison <jra@samba.org>
Mon, 25 Jul 2022 18:32:18 +0000 (18:32 +0000)
This avoids wasting getpid() during profiling.

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
Autobuild-User(master): Jeremy Allison <jra@samba.org>
Autobuild-Date(master): Mon Jul 25 18:32:18 UTC 2022 on sn-devel-184

source3/profile/profile.c

index a18ee45dab84a59befae8f0e2f39f75c1cf3eff2..efb603d85cbd0b5ec3fc2e2039ac174ba55ee63b 100644 (file)
@@ -280,7 +280,7 @@ static int profile_stats_parser(TDB_DATA key, TDB_DATA value,
 
 void smbprofile_dump(void)
 {
-       pid_t pid = getpid();
+       pid_t pid = 0;
        TDB_DATA key = { .dptr = (uint8_t *)&pid, .dsize = sizeof(pid) };
        struct profile_stats s = {};
        int ret;
@@ -299,6 +299,8 @@ void smbprofile_dump(void)
                return;
        }
 
+       pid = tevent_cached_getpid();
+
 #ifdef HAVE_GETRUSAGE
        ret = getrusage(RUSAGE_SELF, &rself);
        if (ret != 0) {