~raghavendra-prabhu/percona-xtradb-cluster/release-5.5.30-galera-2.x

« back to all changes in this revision

Viewing changes to galera/src/key_entry.cpp

  • Committer: Ignacio Nin
  • Date: 2012-10-31 22:57:41 UTC
  • mfrom: (95.2.11 2.x)
  • Revision ID: ignacio.nin@percona.com-20121031225741-kzcz6072mwzfpaiw
MergeĀ fromĀ upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
//
 
2
// Copyright (C) 2012 Codership Oy <info@codership.com>
 
3
//
 
4
 
 
5
#include "key_entry.hpp"
 
6
#include "trx_handle.hpp"
 
7
 
 
8
namespace galera
 
9
{
 
10
 
 
11
#ifndef NDEBUG
 
12
 
 
13
void
 
14
KeyEntry::assert_ref(TrxHandle* trx, bool full_key)
 
15
{
 
16
    assert(ref_trx_ == 0 ||
 
17
           ref_trx_->global_seqno() <= trx->global_seqno());
 
18
    if (full_key)
 
19
    {
 
20
        assert(ref_full_trx_ == 0 ||
 
21
               (ref_full_trx_->global_seqno() <= trx->global_seqno() &&
 
22
                ref_trx_ != 0));
 
23
    }
 
24
}
 
25
 
 
26
void
 
27
KeyEntry::assert_unref(TrxHandle* trx)
 
28
{
 
29
    if (ref_full_trx_ != 0 && ref_trx_ == 0)
 
30
    {
 
31
        log_fatal << "dereferencing EXCLUSIVE partial key: " << key_
 
32
                  << " by " << trx->global_seqno()
 
33
                  << ", while full key referenced by "
 
34
                  << ref_full_trx_->global_seqno();
 
35
        assert(0);
 
36
    }
 
37
}
 
38
 
 
39
void
 
40
KeyEntry::assert_ref_shared(TrxHandle* trx, bool full_key)
 
41
{
 
42
    assert(ref_shared_trx_ == 0 ||
 
43
           ref_shared_trx_->global_seqno() <= trx->global_seqno());
 
44
    if (full_key)
 
45
    {
 
46
        assert(ref_full_shared_trx_ == 0 ||
 
47
               (ref_full_shared_trx_->global_seqno() <= trx->global_seqno() &&
 
48
                ref_shared_trx_ != 0));
 
49
    }
 
50
}
 
51
 
 
52
void
 
53
KeyEntry::assert_unref_shared(TrxHandle* trx)
 
54
{
 
55
    if (ref_full_shared_trx_ != 0 && ref_shared_trx_ == 0)
 
56
    {
 
57
        log_fatal << "dereferencing SHARED partial key: " << key_
 
58
                  << " by " << trx->global_seqno()
 
59
                  << ", while full key referenced by "
 
60
                  << ref_full_shared_trx_->global_seqno();
 
61
        assert(0);
 
62
    }
 
63
}
 
64
 
 
65
#endif /* NDEBUG */
 
66
 
 
67
}
 
68
 
 
69