LINUX.ORG.RU

История изменений

Исправление 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(...)... тогда уже всё что входит в блок кода должно иметь проверку на блокирвоки внутри и правильную проверку на них или проверятся рантаймом, ты просто вызываешь функцию, а запустится она автоматически тогда когда блокировка будет отпущена и автоматически блокировка будет установлена, то есть в целом ненужно ничего явно указывать, нужно просто сказать что весь этот кусок кода помечен как блокирующий, не явным вызовом блокировки внутри ака семафор, а неявной блокировкой на уровне исполнения котрая гарантирует что хоть ты там навызывайся кого хочшеь в каком угодно порядке выполнено будет всё в порядке очереди захвата блокировки и никак иначе. Но тут типизация уже не на уровне куска памяти в оперативке, а на уровне куска кода.