void darwinEvents_unlock(void) { int err; if ((err = pthread_mutex_unlock(&mieq_lock))) { ErrorF("%s:%s:%d: Failed to unlock mieq_lock: %d\n", __FILE__, __FUNCTION__, __LINE__, err); xorg_backtrace(); } }
void darwinEvents_lock(void) { int err; if ((err = pthread_mutex_lock(&mieq_lock))) { ErrorF("%s:%s:%d: Failed to lock mieq_lock: %d\n", __FILE__, __FUNCTION__, __LINE__, err); xorg_backtrace(); } if (darwinEvents == NULL) { pthread_cond_wait(&mieq_ready_cond, &mieq_lock); } }
OsSigHandler(int signo) #endif { #ifdef RTLD_DI_SETSIGNAL const char *dlerr = dlerror(); if (dlerr) { LogMessageVerbSigSafe(X_ERROR, 1, "Dynamic loader error: %s\n", dlerr); } #endif /* RTLD_DI_SETSIGNAL */ if (OsSigWrapper != NULL) { if (OsSigWrapper(signo) == 0) { /* ddx handled signal and wants us to continue */ return; } } /* log, cleanup, and abort */ xorg_backtrace(); #ifdef SA_SIGINFO if (sip->si_code == SI_USER) { ErrorFSigSafe("Received signal %u sent by process %u, uid %u\n", signo, sip->si_pid, sip->si_uid); } else { switch (signo) { case SIGSEGV: case SIGBUS: case SIGILL: case SIGFPE: ErrorFSigSafe("%s at address %p\n", strsignal(signo), sip->si_addr); } } #endif FatalError("Caught signal %d (%s). Server aborting\n", signo, strsignal(signo)); }
/* * xf86PrintBacktrace -- * Print a stack backtrace for debugging purposes. */ void xf86PrintBacktrace(void) { xorg_backtrace(); }