Critical Sections

ContentAutomatic Mode

  • Critical Sections




With Critical Sections you can prevent deadlocks by grouping Blocks so they are all reserved by one train at the same time



A Critical Section prevents two locomotives from blocking each other when trying to enter a single main line from opposite ends. When two locomotives want to travel down the same main line in opposite directions, one must wait until the other one has come through the line and passed it.

Setup

Blocks b3 and b4 are setup as a Block Group with the Critical Section flag set (See Content > Objects > Block Groups) to prevent a dead lock. b3 and b4 are the main line that must be shared by locomotives running in opposite directions. At least one end of the main line must have a turnout to provide a passing track, this example has turnouts at both ends.


Notes
Also b3 and b4 do not have the wait flag set.

Flow of locking and unlocking

Initial positions of the two loco's.


After starting both loco's in auto mode only one can reserve the block group b3b4. In this case Loc1 did win.


Block b1 is unlocked at the in event of block b3.


Block b5 is reserved at the enter event of block b4.


Block b3 is unlocked at the in event of block b4. But block b3 cannot be locked by another train because b4 is still locked.


Now Loc1 has come in to block b5 and frees up block 4 which makes it possible for other trains to lock the block group b3b4.


Loc2 can now travel to the other side by locking b3 and b4.


Files

critsec-test.xml

Use the Virtual or DDX library to simulate the events by mouse clicks.


Personal Tools