private unsafe void FlushCursorDispose() { while (_cursorDisposeQueue.TryDequeue(out var cursor)) { var ptr = (Cursor *)cursor; if (_currentCursor != null && ptr == _currentCursor.Cursor) { // Currently active cursor getting disposed. _currentCursor = null; } GLFW.DestroyCursor(ptr); } }