/// <summary> /// Reports sending data with a given up ownership. /// </summary> /// <param name="log">Log</param> internal static void ReportGivenUpOwnershipSending(Log log) { if (log.State == null) { AnalysisErrorReporter.ReportOwnershipError(log, "Method '{0}' of machine '{1}' sends an event that contains " + "payload with already given up ownership.", log.Method, log.Machine); } else { AnalysisErrorReporter.ReportOwnershipError(log, "Method '{0}' in state '{1}' of machine '{2}' sends an event that " + "contains payload with already given up ownership.", log.Method, log.State, log.Machine); } }
/// <summary> /// Reports a potendial data race. /// </summary> /// <param name="log">Log</param> internal static void ReportPotentialDataRace(Log log) { if (log.State == null) { AnalysisErrorReporter.ReportOwnershipError(log, "Method '{0}' of machine '{1}' accesses '{2}' after " + "giving up its ownership.", log.Method, log.Machine, log.Payload); } else { AnalysisErrorReporter.ReportOwnershipError(log, "Method '{0}' in state '{1}' of machine '{2}' accesses " + "'{3}' after giving up its ownership.", log.Method, log.State, log.Machine, log.Payload); } }
/// <summary> /// Reports assignment of given up ownership to a machine field. /// </summary> /// <param name="log">Log</param> internal static void ReportGivenUpOwnershipFieldAssignment(Log log) { if (log.State == null) { AnalysisErrorReporter.ReportOwnershipError(log, "Method '{0}' of machine '{1}' assigns '{2}' to " + "a machine field after giving up its ownership.", log.Method, log.Machine, log.Payload); } else { AnalysisErrorReporter.ReportOwnershipError(log, "Method '{0}' in state '{1}' of machine '{2}' assigns " + "'{3}' to a machine field after giving up its ownership.", log.Method, log.State, log.Machine, log.Payload); } }