Use make_deferred_yieldable

pull/4/merge
Erik Johnston 7 years ago
parent d76621a47b
commit b60859d6cc
  1. 14
      synapse/rest/media/v1/media_repository.py

@ -33,7 +33,7 @@ from synapse.api.errors import SynapseError, HttpResponseException, \
from synapse.util.async import Linearizer
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
import os
@ -123,7 +123,7 @@ class MediaRepository(object):
self._makedirs(fname)
# Write to the main repository
yield preserve_context_over_fn(
yield make_deferred_yieldable(
threads.deferToThread,
self._write_file_synchronously, source, fname,
)
@ -146,7 +146,7 @@ class MediaRepository(object):
# We can either wait for successful writing to the backup repository
# or write in the background and immediately return
if self.synchronous_backup_media_store:
yield preserve_context_over_fn(
yield make_deferred_yieldable(
threads.deferToThread,
self._write_file_synchronously, source, backup_fname,
close_source=True,
@ -355,7 +355,7 @@ class MediaRepository(object):
input_path = self.filepaths.local_media_filepath(media_id)
thumbnailer = Thumbnailer(input_path)
t_byte_source = yield preserve_context_over_fn(
t_byte_source = yield make_deferred_yieldable(
threads.deferToThread,
self._generate_thumbnail,
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)
thumbnailer = Thumbnailer(input_path)
t_byte_source = yield preserve_context_over_fn(
t_byte_source = yield make_deferred_yieldable(
threads.deferToThread,
self._generate_thumbnail,
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
))
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:
if url_cache:
@ -499,7 +499,7 @@ class MediaRepository(object):
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:
file_path = self.filepaths.remote_media_thumbnail_rel(

Loading…
Cancel
Save