я ваще удивлюсь если такого вообще нигде нет, но щас речь про дотнет
пусть у нас куча методов которвые вызываются асинхронно
Method1()
{
lock(resource)
{
}
}
Method2()
{
Mathod1(); // норм
}
Method3()
{
lock(resource)
{
.....
Method1(); // дедлок, но нафига? если мы знаем, что если наш мютекс захвачен тем же потоком, то мы смело можем просто проигнорировать вложенный лок, ибо выполнение и так уже синхронное
.....
}
}
такое и руками наверно можно написать, но если в дотнете что такое готвое?
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
It is legal for the same thread to invoke Enter more than once without it blocking; however, an equal number of Exit calls must be invoked before other threads waiting on the object will unblock.
Здравствуйте, Andir, Вы писали:
A>Дотнетовский lock позволяет повторный захват ресурса одному и тому же потоку, никакого дедлока не будет.
тю блин, а мне показалось пару раз что локалось и я тут теперь мучаюсь, пасба)
Я изъездил эту страну вдоль и поперек, общался с умнейшими людьми и я могу вам ручаться в том, что обработка данных является лишь причудой, мода на которую продержится не более года. (с) Эксперт, авторитет и профессионал из 1957 г.
Здравствуйте, Pzz, Вы писали:
Pzz>Здравствуйте, Barbar1an, Вы писали:
B>>такое и руками наверно можно написать, но если в дотнете что такое готвое?
Pzz>Это называется "рекурсивный мьютекс (recursive mutex)".