ok, so this name conflict check is added in mudos v22.01 , I’m guessing your mudos version is older than this because I don’t see this name conflict check in the previous linked code. without this check the driver will probably just leak memory. FluffOS correctly caught this issue and didn’t leak memory, so it is doing the right thing.
But, regardless, back to issue on hand, I think I fully understand the issue now, This is an reentracey issue :
I think you need to change the logic in “‘get_city_room’ at /daemons/city_d at line 378” , I’m guessing it is using new() to construct new “cityroom8.c”, and calling ->virtual_start() right away, if you change this into
call_out(0, (: xx->virtual_start() :) ); meaning calling virtual_start() after the current object is fully constructed, then it should work.
This will allow the current load_object for this virtual_object to finish first, then start calling creating on the object, as an workaround for this reentrancy problem: during creating parent object ,
you are creating new child object which in create is trying to load parent object again, which caused the virtual object to be constructed multiple times with same name during is creation.