Can you provide any specifics regarding these bad things?
Well, libdtrace is rather underdocumented, but according to the folks behind TclDTrace, "Note that *dtrace_close* is needed to prevent an epic fail. It does a major cleanup, that involves restoring the state of all grabbed processes, which may be all processes in the system..."

Now, if somebody with internal knowledge could reassure us all that, say, the kernel always calls dtrace_close during process cleanup, then libdtrace becomes much more attractive.

It is true that you need to call dtrace_close() to release children
you are controlling. Look at the source for dtrace(1M) or plockstat(1M)
and you'll see that the have signal handlers setup which call into
dtrace_close for SIGTERM and SIGINT.

However, why are you worried about leaving children in an odd state?
By the look of the example you gave you're not controlling children
are you? You just want to compile a D script and read the data
periodically and do something with that. If so, you're just doing
regular consumer activities - it doesn't matter that the script you
injected is  interested in the consumer. You're not dealing with victim
processes there's no need to worry about the subtleties of that.

Jon.

_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to