33 #ifndef MARSHALLERTHREAD_H_ 34 #define MARSHALLERTHREAD_H_ 54 Locker(pthread_mutex_t &lock, pthread_cond_t &cond,
int &count);
58 pthread_mutex_t& m_mutex;
76 ChildLocker(pthread_mutex_t &lock, pthread_cond_t &cond,
int &count);
80 pthread_mutex_t& m_mutex;
81 pthread_cond_t& m_cond;
99 pthread_attr_t d_thread_attr;
101 pthread_mutex_t d_out_mutex;
102 pthread_cond_t d_out_cond;
104 int d_child_thread_count;
105 std::string d_thread_error;
114 pthread_mutex_t &d_mutex;
115 pthread_cond_t &d_cond;
117 std::string &d_error;
126 write_args(pthread_mutex_t &m, pthread_cond_t &c,
int &count, std::string &e, std::ostream &s,
char *vals,
int num) :
127 d_mutex(m), d_cond(c), d_count(count), d_error(e), d_out(s), d_out_file(-1), d_buf(vals), d_num(num)
135 write_args(pthread_mutex_t &m, pthread_cond_t &c,
int &count, std::string &e,
int fd,
char *vals,
int num) :
136 d_mutex(m), d_cond(c), d_count(count), d_error(e), d_out(std::cerr), d_out_file(fd), d_buf(vals), d_num(num)
145 pthread_mutex_t &get_mutex() {
return d_out_mutex; }
146 pthread_cond_t &get_cond() {
return d_out_cond; }
148 int &get_child_thread_count() {
return d_child_thread_count; }
149 void increment_child_thread_count() { ++d_child_thread_count; }
151 void start_thread(
void* (*thread)(
void *arg), std::ostream &out,
char *byte_buf,
unsigned int bytes_written);
152 void start_thread(
void* (*thread)(
void *arg),
int fd,
char *byte_buf,
unsigned int bytes_written);
156 static void *write_thread(
void *arg);
157 static void *write_thread_part(
void *arg);
top level DAP object to house generic methods