| 10 | namespace acl { |
| 11 | |
| 12 | class check_job : public thread_job { |
| 13 | public: |
| 14 | check_job(tbox<bool>& box, connect_client& conn, bool opened) |
| 15 | : box_(box), conn_(conn), opened_(opened), aliving_(true) {} |
| 16 | |
| 17 | ~check_job() {} |
| 18 | |
| 19 | // Get the checking result for the given connection. |
| 20 | bool aliving() const { |
| 21 | return aliving_; |
| 22 | } |
| 23 | |
| 24 | // Get the connection. |
| 25 | connect_client& get_conn() const { |
| 26 | return conn_; |
| 27 | } |
| 28 | |
| 29 | protected: |
| 30 | // @overide |
| 31 | void* run() { |
| 32 | if (opened_) { |
| 33 | aliving_ = conn_.alive(); |
| 34 | } else { |
| 35 | aliving_ = conn_.open(); |
| 36 | } |
| 37 | |
| 38 | box_.push(NULL); |
| 39 | return NULL; |
| 40 | } |
| 41 | |
| 42 | private: |
| 43 | tbox<bool>& box_; |
| 44 | connect_client& conn_; |
| 45 | bool opened_; |
| 46 | bool aliving_; |
| 47 | }; |
| 48 | |
| 49 | connect_pool::connect_pool(const char* addr, size_t max, size_t idx /* = 0 */) |
| 50 | : alive_(true) |
no outgoing calls
no test coverage detected
searching dependent graphs…