<div dir="ltr"><div><div><div>In C++, I pass QList and QMap by value as signal arguments and I know that there will be lazy copy on write, and I can safely use the variables of these types when needed. And if I pass by pointer or reference, I know I need to protect concurrent access to it. <br><br></div>In PyQt5, there is no QList or QMap, and it seems the list and dict built-ins are automatically converted to/from QList/QMap when needed.<br></div>Which is nice.<br><br>So now my question is, when a list or dict is passed as a signal argument across thread boundaries, what happens? Is it passed by reference? If so, do we need to protect it from access in the other thread?<br></div>Or does it behave like QList and QMap and have lazy copy on write?<br><div><br></div><div>Is this documented somewhere?<br><br></div></div>