diff options
author | ahl <none@none> | 2006-02-08 10:03:09 -0800 |
---|---|---|
committer | ahl <none@none> | 2006-02-08 10:03:09 -0800 |
commit | 900524f30cbbebc670e146a87587f355b9f633ee (patch) | |
tree | 81a3f2e4cc774c698d8a4880e5c6d3098bcd5b28 /usr/src/lib/libdtrace/common/dt_work.c | |
parent | c877ffe618c3f6a0f995ed6b3d5feed148e6d49f (diff) | |
download | illumos-gate-900524f30cbbebc670e146a87587f355b9f633ee.tar.gz |
4864945 spelling error in usage message
6299947 ustack() needs to ignore the top 32 bits for 32-bit processes
6305794 libdtrace misses rtld notifications
6309681 USDT headergen
6349088 dtrace command, Assertion failed: dpr->dpr_refs != 0, file ../common/dt_proc.c, line 976
6375841 USDT providers shouldn't be allowed to end in a digit
--HG--
rename : usr/src/cmd/abi/apptrace/amd64/Makefile => deleted_files/usr/src/cmd/abi/apptrace/amd64/Makefile
Diffstat (limited to 'usr/src/lib/libdtrace/common/dt_work.c')
-rw-r--r-- | usr/src/lib/libdtrace/common/dt_work.c | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/usr/src/lib/libdtrace/common/dt_work.c b/usr/src/lib/libdtrace/common/dt_work.c index 64cc8ff176..97a7f62d69 100644 --- a/usr/src/lib/libdtrace/common/dt_work.c +++ b/usr/src/lib/libdtrace/common/dt_work.c @@ -19,8 +19,9 @@ * * CDDL HEADER END */ + /* - * Copyright 2005 Sun Microsystems, Inc. All rights reserved. + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. */ @@ -47,7 +48,7 @@ dtrace_sleep(dtrace_hdl_t *dtp) { dt_proc_hash_t *dph = dtp->dt_procs; dtrace_optval_t policy = dtp->dt_options[DTRACEOPT_BUFPOLICY]; - dt_proc_t *dpr; + dt_proc_notify_t *dprn; hrtime_t earliest = INT64_MAX; struct timespec tv; @@ -91,12 +92,18 @@ dtrace_sleep(dtrace_hdl_t *dtp) */ (void) pthread_cond_reltimedwait_np(&dph->dph_cv, &dph->dph_lock, &tv); - while ((dpr = dph->dph_notify) != NULL) { - dph->dph_notify = dpr->dpr_notify; - dpr->dpr_notify = NULL; + while ((dprn = dph->dph_notify) != NULL) { + if (dtp->dt_prochdlr != NULL) { + char *err = dprn->dprn_errmsg; + if (*err == '\0') + err = NULL; + + dtp->dt_prochdlr(dprn->dprn_dpr->dpr_proc, err, + dtp->dt_procarg); + } - if (dtp->dt_prochdlr != NULL) - dtp->dt_prochdlr(dpr->dpr_proc, dtp->dt_procarg); + dph->dph_notify = dprn->dprn_next; + dt_free(dtp, dprn); } (void) pthread_mutex_unlock(&dph->dph_lock); |