Best approach for calculating shortest distance tree from a location in between two vertices

Hi, I'm wondering what the best approach would be for calculating shortest
distances from a point on an edge in between that edge's start and end
vertex.

The way I see it, there's two options:
a) "split" the edge at the wanted location: so basically adding two new
(shorter) edges; the original edge can be removed, but I guess leaving it
in wouldn't change results
b)
- calculate Dijkstra from the start vertex and for each reachable node add
the fixed cost for reaching the start vertex
- same for end vertex
- combine these two distance maps to get the minimum distance for each
reachable node

Apart from the feasibility, I can foresee problems along the road (no pun
intended):
a) I have a multi-threaded setup, and modifying the network from a single
thread could cause all kinds of weird concurrency issues ?
b) extra calculation costs: extra Dijkstra + combining the two distance
maps (is there a fast approach for this ?)

Any tips here, anyone who was faced with the same issue ? Thx !

attachment.html (1.16 KB)