From 0e66a78a4deda14424dc2585caaba201c7fa573b Mon Sep 17 00:00:00 2001 From: unknown Date: Wed, 18 Jul 2001 23:34:04 +0300 Subject: Upgrade TL_WRITE_CONCURRENT_INSERT to TL_WRITE_LOW_PRIORITY if --low-priority-updates is used and the file has holes. Docs/manual.texi: Changelog sql/sql_insert.cc: Fixed that sleeptime is 0 for new insert delayed threads. --- mysys/thr_lock.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'mysys/thr_lock.c') diff --git a/mysys/thr_lock.c b/mysys/thr_lock.c index cff4d3bbac8..7d86d0c9524 100644 --- a/mysys/thr_lock.c +++ b/mysys/thr_lock.c @@ -85,6 +85,7 @@ multiple read locks. my_bool thr_lock_inited=0; ulong locks_immediate = 0L, locks_waited = 0L; +enum thr_lock_type thr_upgraded_concurrent_insert_lock = TL_WRITE; /* The following constants are only for debug output */ #define MAX_THREADS 100 @@ -514,7 +515,7 @@ int thr_lock(THR_LOCK_DATA *data,enum thr_lock_type lock_type) } } else if (lock_type == TL_WRITE_CONCURRENT_INSERT && ! lock->check_status) - data->type=lock_type= TL_WRITE; /* not supported */ + data->type=lock_type= thr_upgraded_concurrent_insert_lock; if (lock->write.data) /* If there is a write lock */ { @@ -556,7 +557,7 @@ int thr_lock(THR_LOCK_DATA *data,enum thr_lock_type lock_type) { /* no scheduled write locks */ if (lock_type == TL_WRITE_CONCURRENT_INSERT && (*lock->check_status)(data->status_param)) - data->type=lock_type=TL_WRITE; /* Upgrade lock */ + data->type=lock_type= thr_upgraded_concurrent_insert_lock; if (!lock->read.data || (lock_type <= TL_WRITE_DELAYED && @@ -943,10 +944,10 @@ my_bool thr_upgrade_write_delay_lock(THR_LOCK_DATA *data) DBUG_ENTER("thr_upgrade_write_delay_lock"); pthread_mutex_lock(&lock->mutex); - if (data->type == TL_UNLOCK || data->type == TL_WRITE) /* Aborted */ + if (data->type == TL_UNLOCK || data->type >= TL_WRITE_LOW_PRIORITY) { pthread_mutex_unlock(&lock->mutex); - DBUG_RETURN(data->type == TL_UNLOCK); + DBUG_RETURN(data->type == TL_UNLOCK); /* Test if Aborted */ } check_locks(lock,"before upgrading lock",0); /* TODO: Upgrade to TL_WRITE_CONCURRENT_INSERT in some cases */ -- cgit v1.2.1