Teaching history how to exit early on thread cancellation

This commit is contained in:
ridiculousfish 2013-04-06 00:28:55 -07:00
parent fccf38a4d6
commit 3a7ab3f030

View file

@ -21,6 +21,7 @@
#include "util.h" #include "util.h"
#include "sanity.h" #include "sanity.h"
#include "tokenizer.h" #include "tokenizer.h"
#include "reader.h"
#include "wutil.h" #include "wutil.h"
#include "history.h" #include "history.h"
@ -1010,10 +1011,17 @@ bool history_search_t::go_backwards()
if (idx == max_idx) if (idx == max_idx)
return false; return false;
const bool main_thread = is_main_thread();
while (++idx < max_idx) while (++idx < max_idx)
{ {
if (main_thread ? reader_interrupted() : reader_thread_job_is_stale())
{
return false;
}
const history_item_t item = history->item_at_index(idx); const history_item_t item = history->item_at_index(idx);
/* We're done if it's empty */ /* We're done if it's empty or we cancelled */
if (item.empty()) if (item.empty())
{ {
return false; return false;