3#include <zypp-core/zyppng/io/SockAddr>
4#include <zypp-core/zyppng/base/Timer>
19 int res = ::pthread_sigmask(SIG_BLOCK, &set, NULL);
27 for (
const int sig : sigs )
28 ::sigaddset( &set, sig );
30 int res = ::pthread_sigmask(SIG_BLOCK, &set, NULL);
40 if ( res < 0 && errno != ECONNREFUSED && errno != EADDRNOTAVAIL ) {
65 if ( ioctl( fd, FIONREAD, &value) >= 0 )
66 return int64_t(value);
73 int pipeFds[]={ -1, -1 };
76 if ( ::pipe2( pipeFds, flags ) != 0 )
79 if ( ::pipe( pipeFds ) != 0 )
82 ::fcntl( pipeFds[0], F_SETFD, flags );
83 ::fcntl( pipeFds[1], F_SETFD, flags );
virtual struct::sockaddr * nativeSockAddr() const =0
virtual std::size_t size() const =0
static uint64_t elapsedSince(const uint64_t start)
bool blockAllSignalsForCurrentThread()
bool trySocketConnection(int &sockFD, const SockAddr &addr, uint64_t timeout)
bool blockSignalsForCurrentThread(const std::vector< int > &sigs)
auto eintrSafeCall(Fun &&function, Args &&... args)
int64_t bytesAvailableOnFD(int fd)
void renumberFd(int origfd, int newfd)
std::string strerr_cxx(const int err=-1)
AutoDispose<int> calling close
static std::optional< Pipe > create(int flags=0)