ossp-pkg/pth/ChangeLog 1.629 -> 1.630
--- ChangeLog 2004/12/03 16:17:54 1.629
+++ ChangeLog 2004/12/03 16:21:08 1.630
@@ -21,6 +21,25 @@
Changes between 2.0.2 and 2.0.3 (12-Sep-2004 to xx-xxx-2004)
+ *) The pth_uctx_save() and pth_uctx_restore() API functions
+ unfortunately were broken by design because they are C
+ _functions_. This leads to one more deadly nesting on the
+ run-time stack which effectively caused the pth_mctx_restore()
+ in pth_uctx_restore() to return to the end of pth_uctx_save()
+ but then the control flow unfortunately returns to the
+ pth_uctx_restore() caller instead of the pth_uctx_save() caller
+ because the call to pth_uctx_restore() had already overwritten the
+ run-time stack position where the original return address for the
+ pth_uctx_save() call was stored.
+
+ The only workaround would be to #define pth_uctx_save() and
+ pth_uctx_restore() as C _macros_, but this then would require that
+ lots of the GNU Pth internals from pth_mctx.c would have to be
+ exported in the GNU Pth API (which in turn is not acceptable). So,
+ the only consequence is to remove the two functions again from the
+ GNU Pth API.
+ [Ralf S. Engelschall, Stefan Brantschen <sbr@acm.org>]
+
*) Enhance internal pth_mctx_save() if getcontext(3) is used for the
machine context saving by better emulating the setjmp(3) style
return code semantics.
|
|