From acc5b5e672eceab0172b43dc7dfb1e2e9d4d6e39 Mon Sep 17 00:00:00 2001 From: fche Date: Mon, 19 Sep 2005 20:15:33 +0000 Subject: 2005-09-19 Frank Ch. Eigler * tapsets.cxx (*::emit_probe_entries): Handle busy-count correctly upon contention. --- tapsets.cxx | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tapsets.cxx') diff --git a/tapsets.cxx b/tapsets.cxx index 8d08ea5e..d250521c 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -161,6 +161,7 @@ be_derived_probe::emit_probe_entries (translator_output* o, unsigned j) o->newline(1) << "printk (KERN_ERR \"probe reentrancy (%s vs %s)\\n\", " << "c->probe_point, probe_point);"; o->newline() << "atomic_set (& session_state, STAP_SESSION_ERROR);"; + o->newline() << "atomic_dec (&c->busy);"; o->newline() << "return;"; o->newline(-1) << "}"; o->newline(); @@ -2151,6 +2152,7 @@ dwarf_derived_probe::emit_probe_entries (translator_output* o, unsigned probenum o->newline(1) << "printk (KERN_ERR \"probe reentrancy (%s vs %s)\\n\", " << "c->probe_point, probe_point);"; o->newline() << "atomic_set (& session_state, STAP_SESSION_ERROR);"; + o->newline() << "atomic_dec (&c->busy);"; o->newline() << "return 0;"; o->newline(-1) << "}"; o->newline(); @@ -2312,6 +2314,7 @@ timer_derived_probe::emit_probe_entries (translator_output* o, unsigned j) o->newline(1) << "printk (KERN_ERR \"probe reentrancy (%s vs %s)\\n\", " << "c->probe_point, probe_point);"; o->newline() << "atomic_set (& session_state, STAP_SESSION_ERROR);"; + o->newline() << "atomic_dec (&c->busy);"; o->newline() << "return;"; o->newline(-1) << "}"; o->newline(); -- cgit