[MLton-commit] r4368

Matthew Fluet MLton@mlton.org
Thu, 2 Mar 2006 18:19:53 -0800


Ported bugfix from SML/NJ:

[2006-02-27]
 Fixed bug with the combination of withNack and never, where the
 negative acknowledgement is never generated.  Thanks to Heath
 Putnam for the bug report and fix.


----------------------------------------------------------------------

U   mlton/trunk/lib/cml/core-cml/event.sml

----------------------------------------------------------------------

Modified: mlton/trunk/lib/cml/core-cml/event.sml
===================================================================
--- mlton/trunk/lib/cml/core-cml/event.sml	2006-03-02 21:26:05 UTC (rev 4367)
+++ mlton/trunk/lib/cml/core-cml/event.sml	2006-03-03 02:19:52 UTC (rev 4368)
@@ -421,7 +421,7 @@
 
       (* walk the event group tree, collecting the base events (with associated
        * ack flags), and a list of flag sets.  A flag set is a (cvar * ack flag list)
-       * pairs, where the flags are those associated with the events covered by the
+       * pair, where the flags are those associated with the events covered by the
        * nack cvar.
        *)
       type ack_flg = bool ref
@@ -590,10 +590,7 @@
                                   extRdy (backs, {prio = prio, doitFn = (doitFn, ackFlg)}::doitFns)
                              | _ => extRdy (backs, doitFns))
                end
-            val x =
-               case backs of
-                  [(bevt, _)] => syncOnBEvt bevt
-                | _ => (S.atomicBegin (); ext (backs, []))
+            val x = (S.atomicBegin (); ext (backs, []))
             val () = debug' "syncOnGrp(4)" (* NonAtomic *)
             val () = Assert.assertNonAtomic' "Event.syncOnGrp(4)"
          in