def _read_all_values(self):
pos = <NUM_LIT:8><EOL>used = self._used<EOL>data = self._m<EOL>unpack_from = struct.unpack_from<EOL>while pos < used:<EOL><INDENT>encoded_len = _unpack_integer(data, pos)[<NUM_LIT:0>]<EOL>if encoded_len + pos > used:<EOL><INDENT>msg = '<STR_LIT>'<EOL>raise RuntimeError(msg % self._fname)<EOL><DEDENT>pos += <NUM_LIT:4><EOL>encoded = unpack_from(('<STR_LIT>' % encoded_len).encode(), data, pos)[<NUM_LIT:0>]<EOL>padded_len = encoded_len + (<NUM_LIT:8> - (encoded_len + <NUM_LIT:4>) % <NUM_LIT:8>)<EOL>pos += padded_len<EOL>value = _unpack_double(data, pos)[<NUM_LIT:0>]<EOL>yield encoded.decode('<STR_LIT:utf-8>'), value, pos<EOL>pos += <NUM_LIT:8><EOL><DEDENT>
Yield (key, value, pos). No locking is performed.