在我的验证环境中,很少有序列在同一驱动程序上同时运行(无论何时项目获得相对于其他序列项目的总线)。
但是,现在我需要添加其他序列,该序列将与其他序列同时运行,从而执行原子读取-修改-写入。 我的新序列如下所示:
<mat-error *ngFor="let validation of account_validation_messages.terms">
<mat-error class="error-message" *ngIf="accountDetailsForm.get('terms').hasError(validation.type) && (accountDetailsForm.get('terms').dirty || accountDetailsForm.get('terms').touched)">{{validation.message}}</mat-error>
</mat-error>
Replace with this:
<mat-error class="error-message" *ngIf="accountDetailsForm.get('terms').hasError(validation.type) && (accountDetailsForm.get('terms').dirty || accountDetailsForm.get('terms').touched)">{{validation.message}}</mat-error>
问题在于,在// Atomic READ-MODIFY-WRITE
body() @driver.clock is only {
do read_item keeping {
.cmd == RD;
.addr == addr;
};
// Wait random time;
do write_item keeping {
.cmd == WR;
.addr == addr;
.data == data;
};
};
和read_item
之间,其他序列中的项目会到达总线。您是否知道如何从序列中锁定驾驶员的项目队列?因此,我可以防止其他序列在我的读写项目之间添加其项目吗?
谢谢您的帮助
答案 0 :(得分:1)
您可以使用BuildPath
的{{1}}和grab(...)
方法来获得对序列驱动程序的排他访问:
ungrab(...)
当驾驶员被抓住时,没有其他序列可以向其发送物品。