Здравствуйте, как наиболее просто организовать доступ к глобальной переменной из двух потоков? Просто код 1 ядра написан на С, второго на ассемблере и для второго потока недопустимы функции Win32. Как их синхронизировать? Пока есть вариант только с ассемблерной вставкой: Код (Text): lock bts [some_adr], 1 jс ... Грубо говоря когда 1 поток работает с переменной, второй должен ждать. Заранее спасибо.
acckiitvar Если нужно что-то типа спинлока, то можно просто выдрать существующий код из Windows, например из KeAcquireSpinLock, если же поток должен спать, а не активно ждать, то придется вызывать какую-то усыпляющую ф-ию. А это уже Win32. Ну или можно Native вызвать, если позволяют условия.
Меня юольше интересуют варианты в принципе, я могу весь поток зациклить и пусть в цикле проверяет, просто может есть варианты которые я упускаю?
не упомянули ось. по этому проще всего клиент-серверное приложение. если вынь и вам влом париться то запускайте от админа и юзайте память другого приложения напрямую.
В том то и беда, я отметил уже что функции Win32 или другого API недопустимы. Можно считать что это голый дос.