@class NSString, NSObject; @protocol OS_dispatch_queue, MTLDevice, OS_dispatch_source; @interface _MTLIOScratchBufferAllocator : NSObject { unsigned long long _currentSize; struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } _pool_lock; id _device; struct MTLIOScratchBufferPrivateQueue { struct MTLIOScratchBufferPrivate *tqh_first; struct MTLIOScratchBufferPrivate **tqh_last; } _activeq; struct MTLIOScratchBufferPrivateQueue { struct MTLIOScratchBufferPrivate *tqh_first; struct MTLIOScratchBufferPrivate **tqh_last; } _poolq; struct MTLIOScratchBufferPrivateQueue { struct MTLIOScratchBufferPrivate *tqh_first; struct MTLIOScratchBufferPrivate **tqh_last; } _volatileq; unsigned long long _age_to_purge; NSObject *_pool_cleanup_queue; NSObject *_pool_cleanup_source; struct os_unfair_lock_s { unsigned int _os_unfair_lock_opaque; } _pool_cleanup_lock; BOOL _pool_cleanup_scheduled; BOOL _pool_cleanup_requested; } @property (readonly) unsigned long long hash; @property (readonly) Class superclass; @property (readonly, copy) NSString *description; @property (readonly, copy) NSString *debugDescription; - (void)dealloc; - (void)kickCleanupQueue; - (id)initWithDevice:(id)a0; - (id)newScratchBufferWithMinimumSize:(unsigned long long)a0; - (void)returnActiveScratchBuffersToPool; - (void)returnPriv:(struct MTLIOScratchBufferPrivate { struct { struct MTLIOScratchBufferPrivate *x0; struct MTLIOScratchBufferPrivate **x1; } x0; id x1; id x2; unsigned long long x3; unsigned long long x4; BOOL x5; } *)a0; - (BOOL)updateScratchBuffersPurgeability; - (void)updateScratchBuffersPurgeabilityHandler; @end