TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #269 · 7 јул.

­Возможно, стоит пояснить разницу между синхронизацией из thread/process-safe и синхронизацией с помощью Lock🤔 Наша задача — заставить разные процессы и потоки обращаться к базе данных (или любым другим ресурсам) последовательно. Чтобы не случилось так называемого race condition, то есть состояние гонки. Это когда разные потоки или процессы пытаются одновременно что-то сделать с одним и тем же ресурсом. В этом случае нам нужна какая-то логика ограничения. Пока один процесс не завершил своё действие, другие не могут получить доступ к ресурсу. Так вот, thread-safe и process-safe означает что отдельно взятые операции записи в БД гарантированно будут последовательны. Запросы из разных процессов или потоков выстроятся в очередь и не будут мешать друг другу. Лучше всего когда этот блок реализован на уровне БД в виде атомарных операций или ещё как-то. Но зачем нам тогда еще дополнительный Lock? Этот способ синхронизации используется когда процесс никак не укладывается в одно действие и должен сделать множество операций прежде чем дать доступ следующему. В этом случае процесс ставит некий глобальный Lock на ресурс и никто другой, даже получив законное право на доступ, не может ничего сделать. Все ждут пока этот Lock не будет снят. Это решается на уровне приложения и правильность реализации полностью в вашей ответственности. Например, если забыли разблокировать или сделали перекрёстный Lock (Deadlock как на картинке), то всё зависнет в бесконечном ожидании. #basic

Hashtags

Резултати

Пронајдени 3 слични објави

Пребарај: #ifdef

当前筛选 #ifdef清除筛选
Welcome to the Black Parade

@TheB1ackParade · Post #506 · 05.03.2024 г., 03:58

莫名其妙忙起来了,随便记点免得忘了: 1. tproxy / bpf_sk_assign 对 established tcp 的性能影响是负的,因为设置上 skb->sk 会让 ip_rcv_core 里的 tcp_early_demux 检测失败,从而必须进路由系统。所以正确使用方法是只对 tcp syn 使用 tproxy/sk_assign。 2. 能不能优化 bpf_sk_assign,让它对 listening socket 的 assign 也能像 tcp_early_demux 一样?不能,因为 listening tcp socket 的 sk->sk_rx_dst 是 null,只有 established sk 才有这个 dst。 3. tcpdump ip6 and tcp 生成的 cbpf 是“错的”。它没考虑 ip6 extension。但是 tcpdump (libpcap) 有个对 v6 特别的过滤器: ip6 protochain 6 , 就迭代了 ip6 extension,四次,但是对大部分场景也够用。 4. 晦涩的逻辑。icmp6_host_handle 这个函数名看起来没啥,但是要是我告诉你它实际语义是:只需要在 ( ingress 方向) 或者 (防火墙启动时候的双向) 执行它,如果在 ingress 方向执行的时候不要反弹 icmp6,如果要反弹 icmp6 的话不要反弹 NS for node IP,但是也不要直接返回给内核栈而是继续执行剩余的 nodeport lb。我看着这个原本简单的函数从两个参数变成现在的五个,里外的 #ifdef 嵌套层层恐惧,真是美好的软件。

Hashtags

KernelSU Next

@ksunext · Post #815 · 20.07.2025 г., 20:11

kernel: guard syscall hook types - for kernel syscall hooks we need to pass additional guards for ksun (#ifdef CONFIG_KSU -> #if defined(CONFIG_KSU) && !defined(CONFIG_KSU_KPROBES_HOOK)) or else it will fail to build because of undefined symbol - reference https://github.com/KernelSU-Next/kernel_patches/blob/main/syscall_hook/min_scope_syscall_hooks_v1.4.patch https://github.com/KernelSU-Next/KernelSU-Next/commit/45ad73e9dd86a0ff04a02e73a8fc2dbc3160ee6c

Hashtags