Сергею Вакуленко: нутро мутекса

23 views
Skip to first unread message

Александр Литягин

unread,
Oct 20, 2015, 4:10:22 AM10/20/15
to uOS embedded
Здрвствуйте Сергей!
вот начало захвата мутекса:
void
mutex_lock (mutex_t *m)
{
    arch_state_t x;

    arch_intr_disable (&x);
    assert (STACK_GUARD (task_current));
    assert (task_current != m->master);

меня смущает последняя строчка - что она означает? что текущая задача не может захватывать захваченный ею же мутекс? рекурсивный захват мутекса - вызовет падение проги?
смущает потому что парой строк ниже вот это:
    while (m->master && m->master != task_current) {

и вот это
#if RECURSIVE_LOCKS
        assert (m->deep > 0);
#endif

Reply all
Reply to author
Forward
0 new messages