summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/txn/txn.c
diff options
context:
space:
mode:
authorDavid Hows <howsdav@gmail.com>2017-01-23 16:10:56 +1100
committerDavid Hows <howsdav@gmail.com>2017-01-23 16:10:56 +1100
commitc91b93d2786342505fd9e151c8aa6b68ee03a1fb (patch)
tree7a4890f387b0adc5f028e4369ebc7037097585c1 /src/third_party/wiredtiger/src/txn/txn.c
parent3b1134f5821dcabf89fa6df25b58a674cd3b6ab9 (diff)
downloadmongo-c91b93d2786342505fd9e151c8aa6b68ee03a1fb.tar.gz
Import wiredtiger: 48a3cbc17fa902528217287fd075c87efb44aebc from branch mongodb-3.6
ref: 8d23249433..48a3cbc17f for: 3.5.2 SERVER-16796 Increase logging activity for journal recovery operations WT-2 What does metadata look like? WT-2402 Misaligned structure accesses lead to undefined behavior WT-2771 Add a statistic to track per-btree dirty cache usage WT-2833 improvement: add projections to wt dump utility WT-2898 Improve performance of eviction-heavy workloads by dynamically controlling the number of eviction threads WT-2994 Create documentation describing page sizes and relationships WT-3080 Python test suite: add timestamp or elapsed time for tests WT-3082 Python test suite: shorten default run to avoid pull request timeouts. WT-3083 Fix a bug in wtperf config dump WT-3086 Add transaction state information to cache stuck diagnostic information WT-3091 Add stats to test_perf0001 WT-3092 Quiet a warning from autogen.sh WT-3093 Padding the WT_RWLOCK structure grew the WT_PAGE structure. WT-3099 lint: static function declarations, non-text characters in documentation WT-3100 test bug: format is weighted to delete, insert, then write operations. WT-3104 Fix wtperf configs for eviction tests WT-3105 Fix a deadlock caused by allocating eviction thread sessions dynamically WT-3106 Add truncate support to command line wt utility WT-3108 Also dump disk page size as part of metadata information WT-3109 wording fix in transaction doc WT-3110 Add more test cases for the WT command line utility WT-3112 Handle list lock statistic not incremented in eviction server WT-3114 Avoid archiving log files immediately after recovery WT-3116 Python style testing in s_all may not execute correctly WT-3118 Protect random-abort test against unexpectedly slow child start WT-3121 In test suite create standard way to load extensions WT-3127 bug: CPU yield calls don't necessarily imply memory barriers WT-3134 Coverity scan reports 1368529 and 1368528
Diffstat (limited to 'src/third_party/wiredtiger/src/txn/txn.c')
-rw-r--r--src/third_party/wiredtiger/src/txn/txn.c22
1 files changed, 10 insertions, 12 deletions
diff --git a/src/third_party/wiredtiger/src/txn/txn.c b/src/third_party/wiredtiger/src/txn/txn.c
index 26a0ed679e2..660d37b17d5 100644
--- a/src/third_party/wiredtiger/src/txn/txn.c
+++ b/src/third_party/wiredtiger/src/txn/txn.c
@@ -126,7 +126,7 @@ __wt_txn_get_snapshot(WT_SESSION_IMPL *session)
n = 0;
/* We're going to scan the table: wait for the lock. */
- __wt_readlock_spin(session, txn_global->scan_rwlock);
+ __wt_readlock_spin(session, &txn_global->scan_rwlock);
current_id = pinned_id = txn_global->current;
prev_oldest_id = txn_global->oldest_id;
@@ -180,7 +180,7 @@ __wt_txn_get_snapshot(WT_SESSION_IMPL *session)
WT_ASSERT(session, prev_oldest_id == txn_global->oldest_id);
txn_state->pinned_id = pinned_id;
-done: __wt_readunlock(session, txn_global->scan_rwlock);
+done: __wt_readunlock(session, &txn_global->scan_rwlock);
__txn_sort_snapshot(session, n, current_id);
}
@@ -293,13 +293,13 @@ __wt_txn_update_oldest(WT_SESSION_IMPL *session, uint32_t flags)
/* First do a read-only scan. */
if (wait)
- __wt_readlock_spin(session, txn_global->scan_rwlock);
+ __wt_readlock_spin(session, &txn_global->scan_rwlock);
else if ((ret =
- __wt_try_readlock(session, txn_global->scan_rwlock)) != 0)
+ __wt_try_readlock(session, &txn_global->scan_rwlock)) != 0)
return (ret == EBUSY ? 0 : ret);
__txn_oldest_scan(session,
&oldest_id, &last_running, &metadata_pinned, &oldest_session);
- __wt_readunlock(session, txn_global->scan_rwlock);
+ __wt_readunlock(session, &txn_global->scan_rwlock);
/*
* If the state hasn't changed (or hasn't moved far enough for
@@ -314,9 +314,9 @@ __wt_txn_update_oldest(WT_SESSION_IMPL *session, uint32_t flags)
/* It looks like an update is necessary, wait for exclusive access. */
if (wait)
- __wt_writelock(session, txn_global->scan_rwlock);
+ __wt_writelock(session, &txn_global->scan_rwlock);
else if ((ret =
- __wt_try_writelock(session, txn_global->scan_rwlock)) != 0)
+ __wt_try_writelock(session, &txn_global->scan_rwlock)) != 0)
return (ret == EBUSY ? 0 : ret);
/*
@@ -375,7 +375,7 @@ __wt_txn_update_oldest(WT_SESSION_IMPL *session, uint32_t flags)
#endif
}
-done: __wt_writeunlock(session, txn_global->scan_rwlock);
+done: __wt_writeunlock(session, &txn_global->scan_rwlock);
return (ret);
}
@@ -768,10 +768,8 @@ __wt_txn_global_init(WT_SESSION_IMPL *session, const char *cfg[])
WT_RET(__wt_spin_init(session,
&txn_global->id_lock, "transaction id lock"));
- WT_RET(__wt_rwlock_alloc(session,
- &txn_global->scan_rwlock, "transaction scan lock"));
- WT_RET(__wt_rwlock_alloc(session,
- &txn_global->nsnap_rwlock, "named snapshot lock"));
+ __wt_rwlock_init(session, &txn_global->scan_rwlock);
+ __wt_rwlock_init(session, &txn_global->nsnap_rwlock);
txn_global->nsnap_oldest_id = WT_TXN_NONE;
TAILQ_INIT(&txn_global->nsnaph);