summaryrefslogtreecommitdiff
path: root/myisam/sort.c
diff options
context:
space:
mode:
authorserg@serg.mysql.com <>2002-10-22 00:25:36 +0000
committerserg@serg.mysql.com <>2002-10-22 00:25:36 +0000
commit43599856b2b8fb98cc260bf09e12dc11448a3f04 (patch)
tree281ff1e20ba8329433beedc3b2eff35c0d982813 /myisam/sort.c
parent0b2f4dac0bd388d57fc3553b70aadb1211fc8df1 (diff)
downloadmariadb-git-43599856b2b8fb98cc260bf09e12dc11448a3f04.tar.gz
make REPAIR killable
Diffstat (limited to 'myisam/sort.c')
-rw-r--r--myisam/sort.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/myisam/sort.c b/myisam/sort.c
index 5819fb7b493..0e69e41ed5c 100644
--- a/myisam/sort.c
+++ b/myisam/sort.c
@@ -284,7 +284,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())
@@ -701,6 +701,7 @@ merge_buffers(MI_SORT_PARAM *info, uint keys, IO_CACHE *from_file,
uchar *strpos;
BUFFPEK *buffpek,**refpek;
QUEUE queue;
+ volatile bool *killed= killed_ptr(info->sort_info->param);
DBUG_ENTER("merge_buffers");
count=error=0;
@@ -732,6 +733,10 @@ merge_buffers(MI_SORT_PARAM *info, uint keys, IO_CACHE *from_file,
{
for (;;)
{
+ if (*killed)
+ {
+ error=1; goto err;
+ }
buffpek=(BUFFPEK*) queue_top(&queue);
if (to_file)
{