summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Tauber <asciimoo@gmail.com>2016-09-06 00:36:33 +0200
committerAdam Tauber <asciimoo@gmail.com>2016-09-06 00:36:33 +0200
commit55abf07a4f80f74fbcfbeddaee4f8591216802cd (patch)
treefd7627848edad32c273cd9f873b0eedb65112916
parentb816752719a3aee4746b6b5a14c32c28017c2639 (diff)
downloadsearxng-55abf07a4f80f74fbcfbeddaee4f8591216802cd.tar.gz
searxng-55abf07a4f80f74fbcfbeddaee4f8591216802cd.zip
[fix] thread safe threaded_requests() function
-rw-r--r--searx/search.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/searx/search.py b/searx/search.py
index 6de07d2b5..c6d17eba9 100644
--- a/searx/search.py
+++ b/searx/search.py
@@ -19,6 +19,7 @@ import gc
import threading
from thread import start_new_thread
from time import time
+from uuid import uuid4
import searx.poolrequests as requests_lib
from searx.engines import (
categories, engines
@@ -56,19 +57,20 @@ def search_request_wrapper(fn, url, engine_name, **kwargs):
def threaded_requests(requests):
timeout_limit = max(r[2]['timeout'] for r in requests)
search_start = time()
+ search_id = uuid4().__str__()
for fn, url, request_args, engine_name in requests:
request_args['timeout'] = timeout_limit
th = threading.Thread(
target=search_request_wrapper,
args=(fn, url, engine_name),
kwargs=request_args,
- name='search_request',
+ name=search_id,
)
th._engine_name = engine_name
th.start()
for th in threading.enumerate():
- if th.name == 'search_request':
+ if th.name == search_id:
remaining_time = max(0.0, timeout_limit - (time() - search_start))
th.join(remaining_time)
if th.isAlive():