[GIT] ppl/ppl(master): Now we throw/ catch ad hoc exceptions for deterministic timeouts.

Module: ppl/ppl Branch: master Commit: d81e62914cdeefc5bef56decf96c38376f7ce455 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=d81e62914cdee...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Mon Jul 13 08:56:27 2009 +0200
Now we throw/catch ad hoc exceptions for deterministic timeouts.
---
interfaces/C/ppl_c_implementation_common.defs.hh | 20 ++++++++++++++++++-- 1 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/interfaces/C/ppl_c_implementation_common.defs.hh b/interfaces/C/ppl_c_implementation_common.defs.hh index fe4db96..11163fa 100644 --- a/interfaces/C/ppl_c_implementation_common.defs.hh +++ b/interfaces/C/ppl_c_implementation_common.defs.hh @@ -104,12 +104,23 @@ public: int priority() const { return 0; } - timeout_exception() { - } };
void reset_timeout();
+class deterministic_timeout_exception + : public Parma_Polyhedra_Library::Throwable { +public: + void throw_me() const { + throw *this; + } + int priority() const { + return 0; + } +}; + +void reset_deterministic_timeout(); + } // namespace C
} // namespace Interfaces @@ -136,6 +147,11 @@ catch (timeout_exception&) { \ notify_error(PPL_TIMEOUT_EXCEPTION, "PPL timeout expired"); \ return PPL_TIMEOUT_EXCEPTION; \ } \ +catch (deterministic_timeout_exception&) { \ + reset_deterministic_timeout(); \ + notify_error(PPL_TIMEOUT_EXCEPTION, "PPL deterministic timeout expired"); \ + return PPL_TIMEOUT_EXCEPTION; \ +} \ catch (...) { \ notify_error(PPL_ERROR_UNEXPECTED_ERROR, \ "completely unexpected error: a bug in the PPL"); \
participants (1)
-
Enea Zaffanella