構造化並行性に関するノート、あるいは:Go文は有害と考える(2018年)
本記事では、Go文(go文)による並行処理がもたらす問題点を指摘し、代わりに「構造化並行性(structured concurrency)」のアプローチを提唱している。著者は、スコープを持った並行処理の管理がエラー処理やリソースリークの防止に不可欠であり、Go言語におけるガベージコレクションされないゴルーチンやメモリリークの問題を回避するための設計パターンを解説する。
本記事では、Go文(go文)による並行処理がもたらす問題点を指摘し、代わりに「構造化並行性(structured concurrency)」のアプローチを提唱している。著者は、スコープを持った並行処理の管理がエラー処理やリソースリークの防止に不可欠であり、Go言語におけるガベージコレクションされないゴルーチンやメモリリークの問題を回避するための設計パターンを解説する。
Raymond Chen continues his series on cross-process reader/writer locks by addressing fairness, ensuring exclusive (write) acquisitions get a fair chance against repeated shared (read) acquisitions to prevent writer starvation.
The article discusses fractal page mapping, a technique for mapping page tables into memory using the page tables themselves. This approach allows the operating system to access its own page table structures through the virtual memory system it manages.
The article explains that when a C++ compiler reports an error about code you didn't write, you should investigate who actually wrote that code. This helps in understanding misleading error messages like "illegal use of ->" when no arrow operator appears in your source.
The article examines what happens when a C function receives fewer register parameters than expected across different CPU architectures, concluding the outcome is always problematic but especially severe on Itanium.
This post continues a series on building a cross-process reader/writer lock, focusing on handling the scenario where a process holding the lock is terminated, requiring recovery mechanisms for the abandoned lock state.