с помощью них, возможна робота с переменными в разных потоках, так как они предоставляют возможность изменять информацию в ячейке памяти. Но!
имеется у меня пременная ref seq[WebSocket]. И я пытаюсь туда положить значение в функцие с {.async, gcsafe.} вот таким методом: clients[].add(ws). Но компилятор мне говорит что я имею доступ к глобальной переменной:
D:\nim-2.0.2\lib\pure\asyncmacro.nim(250, 31) Error: 'webSocketServer (Async)' is not GC-safe as it accesses 'clients' which is a global using GC'ed memory
но я же использую указатели, а они не попадают в сборщик мусора... атомик тоже не подходит, пробовал его и не помню причину отказа. А луки блокируют... это тоже минус... как с этим быть?
ref это управляемые ссылки, они контролируются рантаймом
Обсуждают сегодня