OSSP CVS Repository

ossp - Check-in [1701]
Not logged in
[Honeypot]  [Browse]  [Home]  [Login]  [Reports
[Search]  [Ticket]  [Timeline
  [Patchset]  [Tagging/Branching

Check-in Number: 1701
Date: 2002-Jan-30 13:28:37 (local)
2002-Jan-30 12:28:37 (UTC)
User:rse
Branch:
Comment: remember the volatile situation
Tickets:
Inspections:
Files:
ossp-pkg/ex/ex.pod      1.13 -> 1.14     10 inserted, 0 deleted

ossp-pkg/ex/ex.pod 1.13 -> 1.14

--- ex.pod       2002/01/30 12:17:58     1.13
+++ ex.pod       2002/01/30 12:28:37     1.14
@@ -174,6 +174,16 @@
 block of statement(s) without any restrictions. You are even allowed to
 throw (and in the B<ex_catch> block to re-throw) an exception.
 
+There is just one subtle portability detail you have to remember about
+B<ex_try> blocks: all accessible B<ISO-C> objects have the (expected)
+values as of the time B<ex_throw> was called, except that the values of
+objects of automatic storage invocation duration that do not have the
+C<volatile> storage class I<and> have been changed between the B<ex_try>
+invocation and B<ex_throw> are indeterminate. This is both because
+you usually do not know which commands in the B<ex_try> were already
+successful before the exception was thrown and because the underlying
+B<ISO-C> setjmp(3) facility applies those restrictions.
+
 =item B<ex_throw>(I<class>, I<object>, I<value>);
 
 This is second main construct. It builds an exception from the supplied

CVSTrac 2.0.1