24 #ifndef SAFE_CIRCULAR_CHAR_BUFFER_HPP
25 #define SAFE_CIRCULAR_CHAR_BUFFER_HPP
26 #include <graphlab/rpc/circular_char_buffer.hpp>
27 #include <graphlab/parallel/pthread_tools.hpp>
28 #include <graphlab/logger/assertions.hpp>
54 inline bool is_done()
const {
58 inline bool reader_is_blocked()
const {
64 std::streamsize
size()
const;
84 std::streamsize
write(
const char* c, std::streamsize clen);
92 std::streamsize
write_unsafe(
const char* c, std::streamsize clen);
115 std::streamsize clen);
118 void advance_head(
const std::streamsize advance_len);
143 std::streamsize bufsize;
148 std::streamsize head;
154 std::streamsize tail;
160 volatile bool iswaiting;