1
0
mirror of https://github.com/samba-team/samba.git synced 2025-04-24 22:50:23 +03:00

lib/messaging: s/getpid/tevent_cached_getpid

Our messaging code is very performance critical and
we should note waste time in getpid() syscalls...

Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
Stefan Metzmacher 2022-07-25 14:29:35 +02:00 committed by Jeremy Allison
parent 63d4db63fe
commit bcfb257bbf
2 changed files with 10 additions and 10 deletions

View File

@ -283,7 +283,7 @@ static int messaging_dgm_out_destructor(struct messaging_dgm_out *out)
DLIST_REMOVE(out->ctx->outsocks, out); DLIST_REMOVE(out->ctx->outsocks, out);
if ((tevent_queue_length(out->queue) != 0) && if ((tevent_queue_length(out->queue) != 0) &&
(getpid() == out->ctx->pid)) { (tevent_cached_getpid() == out->ctx->pid)) {
/* /*
* We have pending jobs. We can't close the socket, * We have pending jobs. We can't close the socket,
* this has been handed over to messaging_dgm_out_queue_state. * this has been handed over to messaging_dgm_out_queue_state.
@ -784,7 +784,7 @@ static int messaging_dgm_out_send_fragmented(struct tevent_context *ev,
hdr = (struct messaging_dgm_fragment_hdr) { hdr = (struct messaging_dgm_fragment_hdr) {
.msglen = msglen, .msglen = msglen,
.pid = getpid(), .pid = tevent_cached_getpid(),
.sock = out->sock .sock = out->sock
}; };
@ -1011,7 +1011,7 @@ int messaging_dgm_init(struct tevent_context *ev,
goto fail_nomem; goto fail_nomem;
} }
ctx->ev = ev; ctx->ev = ev;
ctx->pid = getpid(); ctx->pid = tevent_cached_getpid();
ctx->recv_cb = recv_cb; ctx->recv_cb = recv_cb;
ctx->recv_cb_private_data = recv_cb_private_data; ctx->recv_cb_private_data = recv_cb_private_data;
@ -1116,7 +1116,7 @@ static int messaging_dgm_context_destructor(struct messaging_dgm_context *c)
close(c->sock); close(c->sock);
if (getpid() == c->pid) { if (tevent_cached_getpid() == c->pid) {
struct sun_path_buf name; struct sun_path_buf name;
int ret; int ret;
@ -1154,7 +1154,7 @@ static int messaging_dgm_context_destructor(struct messaging_dgm_context *c)
static void messaging_dgm_validate(struct messaging_dgm_context *ctx) static void messaging_dgm_validate(struct messaging_dgm_context *ctx)
{ {
#ifdef DEVELOPER #ifdef DEVELOPER
pid_t pid = getpid(); pid_t pid = tevent_cached_getpid();
struct sockaddr_storage addr; struct sockaddr_storage addr;
socklen_t addrlen = sizeof(addr); socklen_t addrlen = sizeof(addr);
struct sockaddr_un *un_addr; struct sockaddr_un *un_addr;
@ -1519,7 +1519,7 @@ int messaging_dgm_get_unique(pid_t pid, uint64_t *unique)
messaging_dgm_validate(ctx); messaging_dgm_validate(ctx);
if (pid == getpid()) { if (pid == tevent_cached_getpid()) {
/* /*
* Protect against losing our own lock * Protect against losing our own lock
*/ */
@ -1632,7 +1632,7 @@ static int messaging_dgm_wipe_fn(pid_t pid, void *private_data)
int messaging_dgm_wipe(void) int messaging_dgm_wipe(void)
{ {
pid_t pid = getpid(); pid_t pid = tevent_cached_getpid();
messaging_dgm_forall(messaging_dgm_wipe_fn, &pid); messaging_dgm_forall(messaging_dgm_wipe_fn, &pid);
return 0; return 0;
} }

View File

@ -64,7 +64,7 @@ void *messaging_dgm_ref(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
tmp_refs = refs; tmp_refs = refs;
if ((refs != NULL) && (dgm_pid != getpid())) { if ((refs != NULL) && (dgm_pid != tevent_cached_getpid())) {
/* /*
* Have to reinit after fork * Have to reinit after fork
*/ */
@ -85,10 +85,10 @@ void *messaging_dgm_ref(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
*err = ret; *err = ret;
return NULL; return NULL;
} }
dgm_pid = getpid(); dgm_pid = tevent_cached_getpid();
} else { } else {
int ret; int ret;
ret = messaging_dgm_get_unique(getpid(), unique); ret = messaging_dgm_get_unique(tevent_cached_getpid(), unique);
DBG_DEBUG("messaging_dgm_get_unique returned %s\n", DBG_DEBUG("messaging_dgm_get_unique returned %s\n",
strerror(ret)); strerror(ret));
if (ret != 0) { if (ret != 0) {