extern int dout_create_rank_symlink(int n);
static inline void _dout_begin_line(int prio) {
- _dout_lock.Lock();
if (unlikely(_dout_need_open))
_dout_open_log();
<< std::dec << " ";
}
-static inline void _dout_end_line() {
- _dout_lock.Unlock();
-}
-
// intentionally conflict with endl
class _bad_endl_use_dendl_t { public: _bad_endl_use_dendl_t(int) {} };
static const _bad_endl_use_dendl_t endl = 0;
#define DOUT_COND(l) l <= XDOUT_CONDVAR(DOUT_SUBSYS)
#define dout(l) do { if (DOUT_COND(l)) {\
- _dout_begin_line(l); dout_prefix
+ Mutex::Locker _dout_locker(_dout_lock);\
+ _dout_begin_line(l); \
+ dout_prefix
-#define dendl std::endl; _dout_end_line(); } } while (0)
+#define dendl std::endl; } } while (0)
extern void hex2str(const char *s, int len, char *buf, int dest_len);