I'm not sure about the last sentence: If the trains in "B" are also "ready to go" (i.e. the wait condition is completed) then they would also unregister at "B" and a train from "A" could register and start moving. If nothing else this would unlock a "C" train.mmmPI wrote: ↑Wed Dec 22, 2021 11:03 amIf you where to have train schedule with A B C for example, and more trains, then some trains could be considered "pending" for C being stationnary at station B preventing some trains leaving A. The Soft deadlock could still occur if those trains waiting at A prevent train at C from completing the 3step loop.
If signals are missing then both the current and the new behaviour can deadlock (hard, not soft). Consider that a train in "A" inches forward a little bit to the next signal. The station is free now (in old and in new behaviour) and a nearby train repathes and shows up immediately at the station. If the incoming train blocks the outgoing train due to missing signals then this is a hard deadlock. Since reapthes are possible this a matter of "when" not a matter of "if".mmmPI wrote: ↑Wed Dec 22, 2021 11:03 amBut in this case, it could be that train at B are waiting for materials. trains at A are thus logically waiting for room in the next train stop. and preventing trains at C from piling up behind them despite train condition for train stop A being fulfilled. This is the acual behavior. Here the proposed change would allows all trains at C to complete the loop and you'd have more trains behind each A station than you set the limit to. ( potentially causing train waiting outside stackers or crash if you don't use signals ).
I don't think this proposal is intended to solve all deadlocks -- soft or hard. But it is an imprevement. Regarding the "breaking things": I though the same at first. But I couldn't come up with a Short, Self Contained, Correct, Example to demonstrate that. The examples I've come up with would break also with the current behaviour.
I don't think mixing signals (and therefore blocks) and train stops adds something to the topic here -- see above.mmmPI wrote: ↑Wed Dec 22, 2021 11:03 amOn a side note the same thing can happen if you only have 2 block in your train network, and 2 trains. Then each train is on its own block and there is asoftdeadlock. Or let say 5 block and 5 trains. The same logic apply if you have 20 trains and the sum of the limit allowed in your station is also exactly 20.