boost::mutex::scoped_lock из последнего буста

Тема в разделе "LANGS.C", создана пользователем samba, 10 дек 2007.

  1. samba

    samba New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    65
    Адрес:
    England
    Привет, сегодня скачал и собрал новый буст, скачал по ссылке

    http://beta.boost.org/development/snapshot.php/trunk

    собрал так:

    bjam release debug threading=multi link=static runtime-link=static install

    Возникла проблема при использовании scoped_lock

    Код (Text):
    1.     boost::mutex mutex;
    2.  
    3.     boost::mutex::scoped_lock scoped_lock_1(mutex);
    4.     boost::mutex::scoped_lock scoped_lock_2(mutex);
    5.     // Сюда уже не попадает!!
    6.     boost::mutex::scoped_lock scoped_lock_3(mutex);
    Как видно из примера scoped_lock_2 ждет когда разблокируется scoped_lock_1.
    почему??? в бусте старом (тот что на boost.org в релизе) все работает корректно.
    по идее никакой блокироваки быть не должно если все выполняется на одном потоке
     
  2. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    Это только в случае использования критических секций. Посмотри текущую реализацию, что изменили.
     
  3. samba

    samba New Member

    Публикаций:
    0
    Регистрация:
    24 авг 2003
    Сообщения:
    65
    Адрес:
    England
    смотрел отладку, буст юзает CreateEventA становится на WaitForSingleObjects