Beispiel #1
0
long long int pipe_streams(struct istream *i, struct ostream *o)
{
	char buf[4096], *ptr;
	long long int size = 0;
	for (;;) {
		long long int rsize = read_istream(i, buf, sizeof(buf));
		if (rsize < 0) {
			logf_e("i/o read error #%lld", rsize);
			return rsize;
		}
		if (!rsize)
			break;
		ptr = buf;
		while (rsize) {
			long long int wsize = write_ostream(o, ptr, rsize);
			if (wsize < 0) {
				logf_e("i/o write error #%lld", wsize);
				return wsize;
			}
			rsize -= wsize;
			ptr += wsize;
			size += wsize;
		}
	}
	return size;
}
Beispiel #2
0
static void crash_pad(int signum)
{
	switch (signum) {
	case SIGINT:  log_e(_s("interruption")); break;
	case SIGTERM: log_e(_s("termination request")); break;
	case SIGABRT: log_e(_s("aborting")); break;
	case SIGFPE:  log_e(_s("floating point exception")); break;
	case SIGILL:  log_e(_s("illegal instruction")); break;
	case SIGSEGV: log_e(_s("segmentation fault")); break;
	default:
		logf_e("caught signal #%d", signum);
	}
	exit(EXIT_FAILURE);
}
Beispiel #3
0
static void boost_priority(void)
{
	if (!SetPriorityClass(GetCurrentProcess(), HIGH_PRIORITY_CLASS))
		logf_e("Setting priority class failed: %d", GetLastError());
}