From 6c033b98542cce9985bb4f48478124909f7f6168 Mon Sep 17 00:00:00 2001 From: "serg@sergbook.mysql.com" <> Date: Mon, 24 Mar 2003 11:19:28 +0100 Subject: [PATCH] make myisam usable without threads (and even w/o pthread_t) --- include/myisam.h | 4 ++++ myisam/mi_check.c | 6 +++++- myisam/sort.c | 4 +++- 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/include/myisam.h b/include/myisam.h index def8b492681..11dae5f59ba 100644 --- a/include/myisam.h +++ b/include/myisam.h @@ -366,14 +366,18 @@ typedef struct st_sort_info SORT_KEY_BLOCKS *key_block,*key_block_end; /* sync things*/ uint got_error, threads_running; +#ifdef THREAD pthread_mutex_t mutex; pthread_cond_t cond; +#endif } SORT_INFO; typedef struct st_mi_sort_param { +#ifdef THREAD pthread_t thr; +#endif IO_CACHE read_cache, tempfile, tempfile_for_exceptions; DYNAMIC_ARRAY buffpek; ulonglong unique[MI_MAX_KEY_SEG+1]; diff --git a/myisam/mi_check.c b/myisam/mi_check.c index ca5c8f9ecb4..5cbe0a7d2f3 100644 --- a/myisam/mi_check.c +++ b/myisam/mi_check.c @@ -2109,7 +2109,7 @@ err: Threaded repair of table using sorting SYNOPSIS - mi_repair_by_sort_r() + mi_repair_parallel() param Repair parameters info MyISAM handler to repair name Name of table (for warnings) @@ -2128,6 +2128,9 @@ err: int mi_repair_parallel(MI_CHECK *param, register MI_INFO *info, const char * name, int rep_quick) { +#ifndef THREAD + return mi_repair_by_sort(param, info, name, rep_quick); +#else int got_error; uint i,key, total_key_length, istep; ulong rec_length; @@ -2489,6 +2492,7 @@ err: share->pack.header_length=0; } DBUG_RETURN(got_error); +#endif /* THREAD */ } /* Read next record and return next key */ diff --git a/myisam/sort.c b/myisam/sort.c index f45ecbaf3a1..ddf565d5092 100644 --- a/myisam/sort.c +++ b/myisam/sort.c @@ -275,6 +275,7 @@ static ha_rows NEAR_F find_all_keys(MI_SORT_PARAM *info, uint keys, } /* find_all_keys */ +#ifdef THREAD /* Search after all keys and place them in a temp. file */ pthread_handler_decl(thr_find_all_keys,arg) @@ -284,7 +285,7 @@ pthread_handler_decl(thr_find_all_keys,arg) uint memavl,old_memavl,keys,sort_length; uint idx, maxbuffer; uchar **sort_keys=0; - + error=1; if (my_thread_init()) @@ -542,6 +543,7 @@ int thr_write_keys(MI_SORT_PARAM *sort_param) my_free((gptr) mergebuf,MYF(MY_ALLOW_ZERO_PTR)); return got_error; } +#endif /* THREAD */ /* Write all keys in memory to file for later merge */