Use make_deferred_yieldable

This commit is contained in:
Erik Johnston 2017-10-13 10:24:19 +01:00
parent d76621a47b
commit b60859d6cc

View File

@ -33,7 +33,7 @@ from synapse.api.errors import SynapseError, HttpResponseException, \
from synapse.util.async import Linearizer from synapse.util.async import Linearizer
from synapse.util.stringutils import is_ascii from synapse.util.stringutils import is_ascii
from synapse.util.logcontext import preserve_context_over_fn, preserve_fn from synapse.util.logcontext import make_deferred_yieldable, preserve_fn
from synapse.util.retryutils import NotRetryingDestination from synapse.util.retryutils import NotRetryingDestination
import os import os
@ -123,7 +123,7 @@ class MediaRepository(object):
self._makedirs(fname) self._makedirs(fname)
# Write to the main repository # Write to the main repository
yield preserve_context_over_fn( yield make_deferred_yieldable(
threads.deferToThread, threads.deferToThread,
self._write_file_synchronously, source, fname, self._write_file_synchronously, source, fname,
) )
@ -146,7 +146,7 @@ class MediaRepository(object):
# We can either wait for successful writing to the backup repository # We can either wait for successful writing to the backup repository
# or write in the background and immediately return # or write in the background and immediately return
if self.synchronous_backup_media_store: if self.synchronous_backup_media_store:
yield preserve_context_over_fn( yield make_deferred_yieldable(
threads.deferToThread, threads.deferToThread,
self._write_file_synchronously, source, backup_fname, self._write_file_synchronously, source, backup_fname,
close_source=True, close_source=True,
@ -355,7 +355,7 @@ class MediaRepository(object):
input_path = self.filepaths.local_media_filepath(media_id) input_path = self.filepaths.local_media_filepath(media_id)
thumbnailer = Thumbnailer(input_path) thumbnailer = Thumbnailer(input_path)
t_byte_source = yield preserve_context_over_fn( t_byte_source = yield make_deferred_yieldable(
threads.deferToThread, threads.deferToThread,
self._generate_thumbnail, self._generate_thumbnail,
thumbnailer, t_width, t_height, t_method, t_type thumbnailer, t_width, t_height, t_method, t_type
@ -384,7 +384,7 @@ class MediaRepository(object):
input_path = self.filepaths.remote_media_filepath(server_name, file_id) input_path = self.filepaths.remote_media_filepath(server_name, file_id)
thumbnailer = Thumbnailer(input_path) thumbnailer = Thumbnailer(input_path)
t_byte_source = yield preserve_context_over_fn( t_byte_source = yield make_deferred_yieldable(
threads.deferToThread, threads.deferToThread,
self._generate_thumbnail, self._generate_thumbnail,
thumbnailer, t_width, t_height, t_method, t_type thumbnailer, t_width, t_height, t_method, t_type
@ -443,7 +443,7 @@ class MediaRepository(object):
r_width, r_height, r_method, r_type, t_byte_source r_width, r_height, r_method, r_type, t_byte_source
)) ))
yield preserve_context_over_fn(threads.deferToThread, generate_thumbnails) yield make_deferred_yieldable(threads.deferToThread, generate_thumbnails)
for t_width, t_height, t_method, t_type, t_byte_source in local_thumbnails: for t_width, t_height, t_method, t_type, t_byte_source in local_thumbnails:
if url_cache: if url_cache:
@ -499,7 +499,7 @@ class MediaRepository(object):
r_width, r_height, r_method, r_type, t_byte_source r_width, r_height, r_method, r_type, t_byte_source
)) ))
yield preserve_context_over_fn(threads.deferToThread, generate_thumbnails) yield make_deferred_yieldable(threads.deferToThread, generate_thumbnails)
for t_width, t_height, t_method, t_type, t_byte_source in remote_thumbnails: for t_width, t_height, t_method, t_type, t_byte_source in remote_thumbnails:
file_path = self.filepaths.remote_media_thumbnail_rel( file_path = self.filepaths.remote_media_thumbnail_rel(