~thomir-deactivatedaccount/drizzle/drizzle-fix-bug653747

« back to all changes in this revision

Viewing changes to plugin/innobase/trx/trx0rseg.c

  • Committer: Brian Aker
  • Date: 2010-10-10 02:07:52 UTC
  • mfrom: (1827.2.3 staging)
  • Revision ID: brian@tangent.org-20101010020752-ktv73isay5dxtvp3
Merge in switch on table_share_instance inheritance.

Show diffs side-by-side

added added

removed removed

Lines of Context:
132
132
}
133
133
 
134
134
/***********************************************************************//**
135
 
Free's an instance of the rollback segment in memory. */
136
 
UNIV_INTERN
137
 
void
138
 
trx_rseg_mem_free(
139
 
/*==============*/
140
 
        trx_rseg_t*     rseg)   /* in, own: instance to free */
141
 
{
142
 
        trx_undo_t*     undo;
143
 
 
144
 
        mutex_free(&rseg->mutex);
145
 
 
146
 
        /* There can't be any active transactions. */
147
 
        ut_a(UT_LIST_GET_LEN(rseg->update_undo_list) == 0);
148
 
        ut_a(UT_LIST_GET_LEN(rseg->insert_undo_list) == 0);
149
 
 
150
 
        undo = UT_LIST_GET_FIRST(rseg->update_undo_cached);
151
 
 
152
 
        while (undo != NULL) {
153
 
                trx_undo_t*     prev_undo = undo;
154
 
 
155
 
                undo = UT_LIST_GET_NEXT(undo_list, undo);
156
 
                UT_LIST_REMOVE(undo_list, rseg->update_undo_cached, prev_undo);
157
 
 
158
 
                trx_undo_mem_free(prev_undo);
159
 
        }
160
 
 
161
 
        undo = UT_LIST_GET_FIRST(rseg->insert_undo_cached);
162
 
 
163
 
        while (undo != NULL) {
164
 
                trx_undo_t*     prev_undo = undo;
165
 
 
166
 
                undo = UT_LIST_GET_NEXT(undo_list, undo);
167
 
                UT_LIST_REMOVE(undo_list, rseg->insert_undo_cached, prev_undo);
168
 
 
169
 
                trx_undo_mem_free(prev_undo);
170
 
        }
171
 
 
172
 
        trx_sys_set_nth_rseg(trx_sys, rseg->id, NULL);
173
 
 
174
 
        mem_free(rseg);
175
 
}
176
 
 
177
 
/***************************************************************************
178
135
Creates and initializes a rollback segment object. The values for the
179
136
fields are read from the header. The object is inserted to the rseg
180
137
list of the trx system object and a pointer is inserted in the rseg