diff options
author | Jeremy Allison <jra@samba.org> | 2002-10-04 22:53:18 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-10-04 22:53:18 +0000 |
commit | 3665777a5bc7ffa92f64ba17daf4cc66c3607198 (patch) | |
tree | 125ab749ead948e0a453bbfb4901afb716150eb7 /source3/tdb/tdb.c | |
parent | cc169cc66824b5a4e33fca8fbd6bd733b7282639 (diff) | |
download | samba-3665777a5bc7ffa92f64ba17daf4cc66c3607198.tar.gz samba-3665777a5bc7ffa92f64ba17daf4cc66c3607198.tar.bz2 samba-3665777a5bc7ffa92f64ba17daf4cc66c3607198.zip |
Add a timeout to tdb_lock_bystring(). Ensure we never have more than
MAX_PRINT_JOBS in a queue.
Jeremy.
(This used to be commit 9fe3c0b90d4bff2217e3cb5a34b4683ca314c06e)
Diffstat (limited to 'source3/tdb/tdb.c')
-rw-r--r-- | source3/tdb/tdb.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/source3/tdb/tdb.c b/source3/tdb/tdb.c index 4143ac7781..c57d23cb6f 100644 --- a/source3/tdb/tdb.c +++ b/source3/tdb/tdb.c @@ -208,6 +208,10 @@ static int tdb_brlock(TDB_CONTEXT *tdb, tdb_off offset, TDB_LOG((tdb, 5,"tdb_brlock failed (fd=%d) at offset %d rw_type=%d lck_type=%d\n", tdb->fd, offset, rw_type, lck_type)); } + /* Was it an alarm timeout ? */ + if (errno == EINTR && palarm_fired && *palarm_fired) + return TDB_ERRCODE(TDB_ERR_LOCK_TIMEOUT, -1); + /* Otherwise - generic lock error. */ /* errno set by fcntl */ return TDB_ERRCODE(TDB_ERR_LOCK, -1); } |