Skip to content

Commit

Permalink
Merge seastar upstream
Browse files Browse the repository at this point in the history
* seastar 2b55789...5b7252d (3):
  > Merge "rpc: serialize large messages into fragmented memory" from Gleb
  > Merge "Print backtrace on SIGSEGV and SIGABRT" from Tomasz
  > test_runner: avoid nested optionals

Includes patch from Gleb to adapt to seastar changes.
  • Loading branch information
Gleb Natapov authored and avikivity committed Sep 28, 2016
1 parent 9ea24c9 commit 32989d1
Show file tree
Hide file tree
Showing 6 changed files with 11 additions and 19 deletions.
2 changes: 1 addition & 1 deletion bytes_ostream.hh
Expand Up @@ -174,7 +174,7 @@ public:
value_type* ptr;
// makes the place_holder looks like a stream
seastar::simple_output_stream get_stream() {
return seastar::simple_output_stream{reinterpret_cast<char*>(ptr)};
return seastar::simple_output_stream(reinterpret_cast<char*>(ptr), sizeof(T));
}
};

Expand Down
2 changes: 1 addition & 1 deletion db/commitlog/commitlog_entry.cc
Expand Up @@ -73,7 +73,7 @@ void commitlog_entry_writer::compute_size() {
}

void commitlog_entry_writer::write(data_output& out) const {
seastar::simple_output_stream str(out.reserve(size()));
seastar::simple_output_stream str(out.reserve(size()), size());
ser::serialize(str, get_entry());
}

Expand Down
7 changes: 2 additions & 5 deletions serializer.hh
Expand Up @@ -101,14 +101,11 @@ inline void skip(Input& v, boost::type<T>) {
template<typename T>
size_type get_sizeof(const T& obj);

template<typename T>
void set_size(seastar::simple_output_stream& os, const T& obj);

template<typename T>
void set_size(seastar::measuring_output_stream& os, const T& obj);

template<typename T>
void set_size(bytes_ostream& os, const T& obj);
template<typename Stream, typename T>
void set_size(Stream& os, const T& obj);

template<typename Buffer, typename T>
Buffer serialize_to_buffer(const T& v, size_t head_space = 0);
Expand Down
15 changes: 5 additions & 10 deletions serializer_impl.hh
Expand Up @@ -24,18 +24,13 @@
#include "serializer.hh"
namespace ser {

template<typename T>
void set_size(seastar::simple_output_stream& os, const T& obj) {
serialize(os, get_sizeof(obj));
}

template<typename T>
void set_size(seastar::measuring_output_stream& os, const T& obj) {
serialize(os, uint32_t(0));
}

template<typename T>
void set_size(bytes_ostream& os, const T& obj) {
template<typename Stream, typename T>
void set_size(Stream& os, const T& obj) {
serialize(os, get_sizeof(obj));
}

Expand Down Expand Up @@ -260,9 +255,9 @@ struct serializer<std::map<K, V>> {

template<typename Iterator>
class deserialized_bytes_proxy {
seastar::memory_stream<Iterator> _stream;
seastar::memory_input_stream<Iterator> _stream;
public:
explicit deserialized_bytes_proxy(seastar::memory_stream<Iterator> stream)
explicit deserialized_bytes_proxy(seastar::memory_input_stream<Iterator> stream)
: _stream(std::move(stream)) { }

[[gnu::always_inline]]
Expand Down Expand Up @@ -440,7 +435,7 @@ Buffer serialize_to_buffer(const T& v, size_t head_space) {
seastar::measuring_output_stream measure;
ser::serialize(measure, v);
Buffer ret(typename Buffer::initialized_later(), measure.size() + head_space);
seastar::simple_output_stream out(reinterpret_cast<char*>(ret.begin()), head_space);
seastar::simple_output_stream out(reinterpret_cast<char*>(ret.begin()), ret.size(), head_space);
ser::serialize(out, v);
return ret;
}
Expand Down
2 changes: 1 addition & 1 deletion utils/input_stream.hh
Expand Up @@ -26,6 +26,6 @@

namespace utils {

using input_stream = seastar::memory_stream<bytes_ostream::fragment_iterator>;
using input_stream = seastar::memory_input_stream<bytes_ostream::fragment_iterator>;

}

0 comments on commit 32989d1

Please sign in to comment.