v3.3.0: removed deadlock-causing sync checks

This commit is contained in:
Evan Debenham
2025-10-30 12:52:28 -04:00
parent 62f5d398ca
commit 658f29fb5b
@@ -1029,21 +1029,24 @@ public class GameScene extends PixelScene {
customWalls.add( visual.create() ); customWalls.add( visual.create() );
} }
private synchronized void addHeapSprite( Heap heap ) { //FIXME added a sync check here in v3.2.5, which caused deadlocks
// what I really need to do is have these queue additions that then happen on render thread
// this can also apply to adding mob sprites
private void addHeapSprite( Heap heap ) {
ItemSprite sprite = heap.sprite = (ItemSprite)heaps.recycle( ItemSprite.class ); ItemSprite sprite = heap.sprite = (ItemSprite)heaps.recycle( ItemSprite.class );
sprite.revive(); sprite.revive();
sprite.link( heap ); sprite.link( heap );
heaps.add( sprite ); heaps.add( sprite );
} }
private synchronized void addDiscardedSprite( Heap heap ) { private void addDiscardedSprite( Heap heap ) {
heap.sprite = (DiscardedItemSprite)heaps.recycle( DiscardedItemSprite.class ); heap.sprite = (DiscardedItemSprite)heaps.recycle( DiscardedItemSprite.class );
heap.sprite.revive(); heap.sprite.revive();
heap.sprite.link( heap ); heap.sprite.link( heap );
heaps.add( heap.sprite ); heaps.add( heap.sprite );
} }
private synchronized void addBlobSprite( final Blob gas ) { private void addBlobSprite( final Blob gas ) {
if (gas.emitter == null) { if (gas.emitter == null) {
gases.add( new BlobEmitter( gas ) ); gases.add( new BlobEmitter( gas ) );
} }