Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTomeu Vizoso <tomeu@sugarlabs.org>2009-04-07 16:42:49 (GMT)
committer Tomeu Vizoso <tomeu@sugarlabs.org>2009-04-07 16:42:49 (GMT)
commit8ecd53e1f284b14932e40a31474c318f703d28e7 (patch)
tree0a4fb5898b27efbfc005c4b197a49ce3de28d1c5
parentbf550df9d0652c4800f5e6d0e1960584eb257987 (diff)
Correctly close the input stream in file transfers #682
-rw-r--r--src/jarabe/model/filetransfer.py17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/jarabe/model/filetransfer.py b/src/jarabe/model/filetransfer.py
index 3c2f1e8..6419f28 100644
--- a/src/jarabe/model/filetransfer.py
+++ b/src/jarabe/model/filetransfer.py
@@ -52,7 +52,7 @@ CHANNEL_TYPE_FILE_TRANSFER = \
'org.freedesktop.Telepathy.Channel.Type.FileTransfer'
class StreamSplicer(gobject.GObject):
- _CHUNK_SIZE = 1024 # 1K
+ _CHUNK_SIZE = 10240 # 10K
__gsignals__ = {
'finished': (gobject.SIGNAL_RUN_FIRST,
gobject.TYPE_NONE,
@@ -71,18 +71,15 @@ class StreamSplicer(gobject.GObject):
def __read_async_cb(self, input_stream, result):
data = input_stream.read_finish(result)
- #logging.debug('__read_async_cb %r' % len(data))
- if data:
- self._pending_buffers.append(data)
- if len(data) == self._CHUNK_SIZE:
- self._input_stream.read_async(self._CHUNK_SIZE,
- self.__read_async_cb,
- gobject.PRIORITY_LOW)
- if not data or len(data) < self._CHUNK_SIZE:
+ if not data:
logging.debug('closing input stream')
self._input_stream.close()
-
+ else:
+ self._pending_buffers.append(data)
+ self._input_stream.read_async(self._CHUNK_SIZE,
+ self.__read_async_cb,
+ gobject.PRIORITY_LOW)
self._write_next_buffer()
def __write_async_cb(self, output_stream, result, user_data):