Запуск тяжелых приожений

Internal structure and you change requests/suggestions
  • Mario
    В код не вникаем, выводы делаем сразу ? Реагируем на change_task как на красную тряпку, а

    Code: Select all

    mov     [edx+TASKDATA.state], 1
    в упор не видим ? А как без change_task переключится на другую задачу ? Я не в курсе.

    Объясняю.
    mutex_lock() проверяет состояние счётчика блокировок MUTEX.count и если мьютекс уже занят, добавляет текущий поток в очередь ожидания мьютекса

    Code: Select all

    list_add_tail esp, ecx      ;esp= new waiter, ecx= list
    (cli в этом случае необходима если только ты не ССЗБ.) после чего устанавливает значение TASKDATA.state, чтобы планировщик больше не переключался на эту задачу пока мютекс не будет освобождён. По этой причине код чуть сложнее твоего цикла с опросом.
    Last edited by Serge on Thu Mar 22, 2012 4:43 am, edited 2 times in total.
  • Это не мой цикл с опросом - этот код изобрел не я. Третий раз уже между прочим говорю.

    Ну, раз:
    Serge wrote:чтобы планировщик больше не переключался на эту задачу пока мютекс не будет освобождён
    пусть будет так, но насчет:
    Serge wrote:По этой причине код чуть сложнее твоего цикла с опросом.
    это ты конечно погорячился.
  • SVN r. 2500 - исправление р.2489

    З.Ы. Новые ядреные мьютексы опасны для мозга...
  • Who is online

    Users browsing this forum: No registered users and 10 guests