История изменений
Исправление LINUX-ORG-RU, (текущая версия) :
Ну, это можно отнести даже к типу, например что такое проверка на if
это когда машина выполняет для значения test
инструкцию и в зависимости от этого делается jump или просто продолжает выполнение того что за ним. На уровне абстракций языка можно сказать что это тип, а его крайние значения определяют будет ли выполнена текущая инструкция jmp
или нет. Так что в целом можно сказать что блокировка сама по себе это тип и вполне себе проверяемый на этапе разбора языка, но правда я всё равно не вкуриваю в то как оно может гарантированно проверить все случаи with _lock:
это равносильно явной установке mutex_lock(m)
, его можно забыть вписать например, но вот если блок кода пометить выше
типа _lock def(...)...
тогда уже всё что входит в блок кода должно иметь проверку на блокирвоки внутри и правильную проверку на них или проверятся рантаймом, ты просто вызываешь функцию (кусок кода, байткода, инстуркуий, пофиг чего), а запустится она автоматически тогда когда блокировка будет отпущена и автоматически блокировка будет установлена, то есть в целом ненужно ничего явно указывать, нужно просто сказать что весь этот кусок кода помечен как блокирующий, не явным вызовом блокировки внутри ака семафор, а неявной блокировкой на уровне исполнения котрая гарантирует что хоть ты там навызывайся кого хочшеь в каком угодно порядке выполнено будет всё в порядке очереди захвата блокировки и никак иначе. Но тут типизация уже не на уровне куска памяти в оперативке, а на уровне куска кода.
Исправление LINUX-ORG-RU, :
Ну, это можно отнести даже к типу, например что такое проверка на if
это когда машина выполняет для значения test
инструкцию и в зависимости от этого делается jump или просто продолжает выполнение того что за ним. На уровне абстракций языка можно сказать что это тип, а его крайние значения определяют будет ли выполнена текущая инструкция jmp
или нет. Так что в целом можно сказать что блокировка сама по себе это тип и вполне себе проверяемый на этапе разбора языка, но правда я всё равно не вкуриваю в то как оно может гарантированно проверить все случаи with _lock:
это равносильно явной установке mutex_lock(m)
, его можно забыть вписать например, но вот если блок кода пометить выше
типа _lock def(...)...
тогда уже всё что входит в блок кода должно иметь проверку на блокирвоки внутри и правильную проверку на них или проверятся рантаймом, ты просто вызываешь функцию, а запустится она автоматически тогда когда блокировка будет отпущена и автоматически блокировка будет установлена, то есть в целом ненужно ничего явно указывать, нужно просто сказать что весь этот кусок кода помечен как блокирующий, не явным вызовом блокировки внутри ака семафор, а неявной блокировкой на уровне исполнения котрая гарантирует что хоть ты там навызывайся кого хочшеь в каком угодно порядке выполнено будет всё в порядке очереди захвата блокировки и никак иначе. Но тут типизация уже не на уровне куска памяти в оперативке, а на уровне куска кода.
Исходная версия LINUX-ORG-RU, :
Ну, это можно отнести даже к типу, например что такое проверка на if
это когда машина выполняет для значения test
инструкцию и в зависимости от этого делается jump. На уровне абстракций языка можно сказать что это тип, а его крайние значения определяют будет ли выполнена текущая инструкция jmp
или нет. Так что в целом можно сказать что блокировка сама по себе это тип и вполне себе проверяемый на этапе разбора языка, но правда я всё равно не вкуриваю в то как оно может гарантированно проверить все случаи with _lock:
это равносильно явной установке mutex_lock(m)
, его можно забыть вписать например, но вот если блок кода пометить выше
типа _lock def(...)...
тогда уже всё что входит в блок кода должно иметь проверку на блокирвоки внутри и правильную проверку на них или проверятся рантаймом, ты просто вызываешь функцию, а запустится она автоматически тогда когда блокировка будет отпущена и автоматически блокировка будет установлена, то есть в целом ненужно ничего явно указывать, нужно просто сказать что весь этот кусок кода помечен как блокирующий, не явным вызовом блокировки внутри ака семафор, а неявной блокировкой на уровне исполнения котрая гарантирует что хоть ты там навызывайся кого хочшеь в каком угодно порядке выполнено будет всё в порядке очереди захвата блокировки и никак иначе. Но тут типизация уже не на уровне куска памяти в оперативке, а на уровне куска кода.