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

Changed to sourceforge tdb code. This includes spinlocks (so we now have

a --with-spinlocks option to configure, this does mean the on-disk tdb
format has changed, so 2.2alphaX sites will need to re-create their
tdb's. The upside is no more tdb fragmentation and a +5% on netbench.
Swings and roundabouts....
Jeremy.
This commit is contained in:
Jeremy Allison
-
parent c9884e16fc
commit 9dea7b7c25
16 changed files with 2334 additions and 2047 deletions

View File

@ -174,7 +174,7 @@ BOOL message_send_pid(pid_t pid, int msg_type, void *buf, size_t len, BOOL dupli
kbuf = message_key_pid(pid);
/* lock the record for the destination */
tdb_lockchain(tdb, kbuf);
tdb_chainlock(tdb, kbuf);
dbuf = tdb_fetch(tdb, kbuf);
@ -208,7 +208,7 @@ BOOL message_send_pid(pid_t pid, int msg_type, void *buf, size_t len, BOOL dupli
if (!len || (len && !memcmp( ptr + sizeof(rec), (char *)buf, len))) {
DEBUG(10,("message_send_pid: discarding duplicate message.\n"));
free(dbuf.dptr);
tdb_unlockchain(tdb, kbuf);
tdb_chainunlock(tdb, kbuf);
return True;
}
}
@ -232,11 +232,11 @@ BOOL message_send_pid(pid_t pid, int msg_type, void *buf, size_t len, BOOL dupli
free(dbuf.dptr);
ok:
tdb_unlockchain(tdb, kbuf);
tdb_chainunlock(tdb, kbuf);
return message_notify(pid);
failed:
tdb_unlockchain(tdb, kbuf);
tdb_chainunlock(tdb, kbuf);
return False;
}
@ -253,7 +253,7 @@ static BOOL message_recv(int *msg_type, pid_t *src, void **buf, size_t *len)
kbuf = message_key_pid(sys_getpid());
tdb_lockchain(tdb, kbuf);
tdb_chainlock(tdb, kbuf);
dbuf = tdb_fetch(tdb, kbuf);
if (dbuf.dptr == NULL || dbuf.dsize == 0) goto failed;
@ -288,11 +288,11 @@ static BOOL message_recv(int *msg_type, pid_t *src, void **buf, size_t *len)
tdb_store(tdb, kbuf, dbuf, TDB_REPLACE);
free(dbuf.dptr);
tdb_unlockchain(tdb, kbuf);
tdb_chainunlock(tdb, kbuf);
return True;
failed:
tdb_unlockchain(tdb, kbuf);
tdb_chainunlock(tdb, kbuf);
return False;
}