BUG#59549, fix compiler error on Windows
This commit is contained in:
parent
1ce30b7356
commit
14a46479b6
14
sql/log.cc
14
sql/log.cc
@ -5995,7 +5995,7 @@ int TC_LOG_MMAP::open(const char *opt_name)
|
|||||||
{
|
{
|
||||||
pg->next=pg+1;
|
pg->next=pg+1;
|
||||||
pg->waiters=0;
|
pg->waiters=0;
|
||||||
pg->state=POOL;
|
pg->state=PS_POOL;
|
||||||
mysql_mutex_init(key_PAGE_lock, &pg->lock, MY_MUTEX_INIT_FAST);
|
mysql_mutex_init(key_PAGE_lock, &pg->lock, MY_MUTEX_INIT_FAST);
|
||||||
mysql_cond_init(key_PAGE_cond, &pg->cond, 0);
|
mysql_cond_init(key_PAGE_cond, &pg->cond, 0);
|
||||||
pg->start=(my_xid *)(data + i*tc_log_page_size);
|
pg->start=(my_xid *)(data + i*tc_log_page_size);
|
||||||
@ -6169,7 +6169,7 @@ int TC_LOG_MMAP::log_xid(THD *thd, my_xid xid)
|
|||||||
cookie= (ulong)((uchar *)p->ptr - data); // can never be zero
|
cookie= (ulong)((uchar *)p->ptr - data); // can never be zero
|
||||||
*p->ptr++= xid;
|
*p->ptr++= xid;
|
||||||
p->free--;
|
p->free--;
|
||||||
p->state= DIRTY;
|
p->state= PS_DIRTY;
|
||||||
|
|
||||||
/* to sync or not to sync - this is the question */
|
/* to sync or not to sync - this is the question */
|
||||||
mysql_mutex_unlock(&LOCK_active);
|
mysql_mutex_unlock(&LOCK_active);
|
||||||
@ -6181,13 +6181,13 @@ int TC_LOG_MMAP::log_xid(THD *thd, my_xid xid)
|
|||||||
p->waiters++;
|
p->waiters++;
|
||||||
/*
|
/*
|
||||||
note - it must be while (), not do ... while () here
|
note - it must be while (), not do ... while () here
|
||||||
as p->state may be not DIRTY when we come here
|
as p->state may be not PS_DIRTY when we come here
|
||||||
*/
|
*/
|
||||||
while (p->state == DIRTY && syncing)
|
while (p->state == PS_DIRTY && syncing)
|
||||||
mysql_cond_wait(&p->cond, &LOCK_sync);
|
mysql_cond_wait(&p->cond, &LOCK_sync);
|
||||||
p->waiters--;
|
p->waiters--;
|
||||||
err= p->state == ERROR;
|
err= p->state == PS_ERROR;
|
||||||
if (p->state != DIRTY) // page was synced
|
if (p->state != PS_DIRTY) // page was synced
|
||||||
{
|
{
|
||||||
if (p->waiters == 0)
|
if (p->waiters == 0)
|
||||||
mysql_cond_signal(&COND_pool); // in case somebody's waiting
|
mysql_cond_signal(&COND_pool); // in case somebody's waiting
|
||||||
@ -6225,7 +6225,7 @@ int TC_LOG_MMAP::sync()
|
|||||||
pool_last->next=syncing;
|
pool_last->next=syncing;
|
||||||
pool_last=syncing;
|
pool_last=syncing;
|
||||||
syncing->next=0;
|
syncing->next=0;
|
||||||
syncing->state= err ? ERROR : POOL;
|
syncing->state= err ? PS_ERROR : PS_POOL;
|
||||||
mysql_cond_broadcast(&syncing->cond); // signal "sync done"
|
mysql_cond_broadcast(&syncing->cond); // signal "sync done"
|
||||||
mysql_cond_signal(&COND_pool); // in case somebody's waiting
|
mysql_cond_signal(&COND_pool); // in case somebody's waiting
|
||||||
mysql_mutex_unlock(&LOCK_pool);
|
mysql_mutex_unlock(&LOCK_pool);
|
||||||
|
@ -63,9 +63,9 @@ class TC_LOG_MMAP: public TC_LOG
|
|||||||
{
|
{
|
||||||
public: // only to keep Sun Forte on sol9x86 happy
|
public: // only to keep Sun Forte on sol9x86 happy
|
||||||
typedef enum {
|
typedef enum {
|
||||||
POOL, // page is in pool
|
PS_POOL, // page is in pool
|
||||||
ERROR, // last sync failed
|
PS_ERROR, // last sync failed
|
||||||
DIRTY // new xids added since last sync
|
PS_DIRTY // new xids added since last sync
|
||||||
} PAGE_STATE;
|
} PAGE_STATE;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user