Заменить критическую секцию на boost :: detail :: spinlock, чтобы вызвать мертвую блокировку на окнах

Моя платформа vs2010 win2003 server, у меня хорошо работает приложение. Существует целое число, защищенное критическим разделом, когда я изменяю и использую вместо него boost :: detail :: spinlock, тогда он переходит в тупиковую блокировку.

-1

Решение

  1. Это boost::detail::spinlock, Это означает, что он предназначен только для внутреннего использования. Если вы хотите портативную замену для критических секций, используйте boost::mutex от Boost.Thread.

  2. Это boost::detail::spinlock, Спинлоки обычно заняты ожиданием, что делает их быстрее, но их можно использовать только в строго контролируемых условиях.

  3. Boost 1.53 (последний выпуск) наконец-то получил Boost.Atomic, которая является переносимой (и совместимой с C ++ 11) заменой для взаимосвязанных операций.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]