17 Detecting and Handling Distribution Problems: Fault

This module is defunct. It has been replaced since Mozart 1.4.0 by new primitives in module DP (Section 11.3). The former functionality could be reproduced, but no effort has been made in that direction, because the new fault model is believed to be superior, although much simpler.

Only the installation of watchers on fault states tempFail and permFail is still functional. It is redefined as

fun {InstallWatcher Entity FStates WatcherProc}
   if {List.all FStates
       fun {$ S} {Member S [tempFail permFail]} end}
   then 
      proc {Loop FS}
         case FS of F|Fr then 
            if {Member F FStates} then 
               thread {WatcherProc Entity F(info:state)} end 
            else 
               {Loop Fr}
            end 
         else skip end 
      end 
   in 
      {DP.getFaultStream Entity thread {Loop} end}
      true 
   else 
      false 
   end 
end


Denys Duchier, Leif Kornstaedt, Martin Homik, Tobias Müller, Christian Schulte and Peter Van Roy
Version 1.4.0 (20080702)