Skip to content

Commit a346ca6

Browse files
committed
Fix objFromName race condition
1 parent 8608e83 commit a346ca6

File tree

3 files changed

+4
-6
lines changed

3 files changed

+4
-6
lines changed

viser/_message_api.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,8 @@ def _encode_rgb(
6666
if isinstance(rgb, onp.ndarray):
6767
assert rgb.shape == (3,)
6868
rgb_fixed = tuple(
69-
value if onp.issubdtype(type(value), onp.integer) else int(value * 255) for value in rgb
69+
value if onp.issubdtype(type(value), onp.integer) else int(value * 255)
70+
for value in rgb
7071
)
7172
assert len(rgb_fixed) == 3
7273
return int(rgb_fixed[0] * (256**2) + rgb_fixed[1] * 256 + rgb_fixed[2])

viser/client/src/SceneTree.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ export function useSceneTreeState() {
127127
}),
128128
resetScene: () =>
129129
set((state) => {
130-
Object.assign(state, cleanSceneTreeState);
130+
state = { ...state, ...cleanSceneTreeState }; // eslint-disable-line @typescript-eslint/no-unused-vars
131131
}),
132132
}))
133133
)
@@ -178,15 +178,14 @@ export const SceneNodeThreeObject = React.memo(
178178
const sceneNode = props.useSceneTree(
179179
(state) => state.nodeFromName[props.name]
180180
);
181-
const obj = props.useSceneTree((state) => state.objFromName[props.name]);
182181
const setObj = props.useSceneTree((state) => state.setObj);
183182
const clearObj = props.useSceneTree((state) => state.clearObj);
184183
const ref = React.useRef<THREE.Object3D>(null);
185184

186185
React.useEffect(() => {
187186
ref.current && setObj(props.name, ref.current);
188187
return () => clearObj(props.name);
189-
}, [obj]); // This `obj` dependency is needed for when resetScene() clears the world axis obj.
188+
});
190189

191190
return (
192191
<>

viser/client/src/WebsocketInterface.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -438,8 +438,6 @@ export default function WebsocketInterface(props: {
438438
});
439439
try {
440440
messageQueue.push(await messagePromise);
441-
// handleMessage(await messagePromise);
442-
// handleMessage(await messagePromise);
443441
} finally {
444442
orderLock.acquired && orderLock.release();
445443
}

0 commit comments

Comments
 (0)