+ int cs;
+ pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
+ LOCK(lock);
+
+ if (ident) {
+ size_t n = strnlen(ident, sizeof log_ident - 1);
+ memcpy(log_ident, ident, n);
+ log_ident[n] = 0;
+ } else {
+ log_ident[0] = 0;
+ }
+ log_opt = opt;
+ log_facility = facility;
+
+ if ((opt & LOG_NDELAY) && log_fd<0) __openlog();
+
+ UNLOCK(lock);
+ pthread_setcancelstate(cs, 0);