17CSigpipe_scoped::CSigpipe_scoped() {
18 TRACE(
"Construct CSigpipe_scoped");
27 sigemptyset(&pending);
30 m_sigpipe_pending = sigismember(&pending, SIGPIPE);
31 if (!m_sigpipe_pending) {
32 sigset_t sigpipe_mask;
33 sigemptyset(&sigpipe_mask);
34 sigaddset(&sigpipe_mask, SIGPIPE);
37 sigemptyset(&blocked);
38 pthread_sigmask(SIG_BLOCK, &sigpipe_mask, &blocked);
41 m_sigpipe_unblock = !sigismember(&blocked, SIGPIPE);
45CSigpipe_scoped::~CSigpipe_scoped() {
46 TRACE(
"Destruct CSigpipe_scoped");
51 if (!m_sigpipe_pending) {
52 sigset_t sigpipe_mask;
53 sigemptyset(&sigpipe_mask);
54 sigaddset(&sigpipe_mask, SIGPIPE);
64 sigemptyset(&pending);
66 if (sigismember(&pending, SIGPIPE)) {
68 sigwait(&sigpipe_mask, &sig);
73 if (m_sigpipe_unblock)
74 pthread_sigmask(SIG_UNBLOCK, &sigpipe_mask, NULL);
Declaration of common used classes and free functions for network connections.
Reengineered Object Oriented UPnP+ program code.
Define macro for synced logging to the console for detailed info and debug.