> -- Цитата:
> Однако запретить передачу ссылок между потоками напрямую сложно. Точнее, на уровне синтаксиса КП вообще невозможно. А "джентльменское соглашение" - слишком эфемерная штука
И синтаксис и джентельменские соглашения тут ни при чем, а вот среда исполнения - ДА. Просто создавать новый поток среда должна как бы с "чистого листа", не передавая ни создавшему поток, ни "потоковой функции" никаких указателей друг на друга. При этом все глобальные переменные должны быть для потока уникальными. Нет ни одной сслыки - следовательно новой возникнуть неоткуда.

Самый простой способ - запускать новую копию среды для каждого потока (в отдельном процессе), но ресурсов будет отниматься много. А вот если бы инициализировать только "память контекста" (подчти как у ДЛЛ для каждого процесса в винде) - все было бы Ок.

> -- Цитата:
> Поэтому мне кажется, что лучше не изобретать особых механизмов, а просто расширить стандартный менеджер.
Это оно конечно да, но это самое расширение задача соооосовсем не простая! Есть два варианта:
1) моментально останавливать все потоки процесса  на момент сбора мусора, а это само по себе нетривиально в винде. Причем останавливать желательно в "правильных" местах, а не между загрузкой указателя в регистр и перед записью его в стек напрмер (тогда такой указатель будет ой как сложно искать в стеке).
2) не останавливать потоки, а собирать мусор в фоновом режиме, что скорее всего не предусмотрено в компиляторе (а для этого требуется введение всяких хитростей типа дополнительных меток в сервисных структурах блоков выделенной памяти и т.п.)

> -- Цитата:
> А если требуются более сложные концепции - Zonnon & Active Oberon are welcome.
В том то и дело, что хотелось бы попроще чем в Zonnon, к томуже он еще не готов и пока только под .НЕТ (а Active Oberon тут вообще не причем).