@code

Stories List
@cuicui_623c4b541e91e

如何優雅地組織Rust項目中的異步代碼?

概要 很多使用過Async Rust的人都可能有過被其要求的約束所困擾的經歷,例如,spawned task有'static的要求,MutexGuard不能跨越.await,等等。克服這些約束需要仔細地設計代碼結構,很可能會導致晦澀和嵌套的代碼,這對開發人員和審查人員都是一種挑戰。在這篇文章中,我將首先列出我在編寫async Rust代碼時的一些痛點。然後,我將指出我們真正需要異步代碼的場景,並討

cuicui_623c4b541e91e Avatar

@cuicui_623c4b541e91e

Nickname Datenlord

@cuicui_623c4b541e91e

InfiniBand包頭與ibverbs接口實現(一)—— RDMA WRITE分析

InfiniBand是一種高性能網絡技術,其數據包格式設計對實現高效可靠的網絡傳輸至關重要。本文將詳細介紹InfiniBand數據包的頭部結構,分析它們在實際應用中的作用和實現機制。並且我們會討論可靠連接(RC)服務類型下的傳輸頭格式,以及RDMA WRITE等典型操作場景,以及它們在ibverbs接口中的對應關係。 Table of Contents: 兩類包頭格式 Routing Hea

cuicui_623c4b541e91e Avatar

@cuicui_623c4b541e91e

Nickname Datenlord

@null_null_null

零長數組初識

前言 本來是解決frr在交叉編譯時,編譯mips架構不可用的問題,後來排查到是因為一個數組的問題,然後無意中看到一個詞---零長數組。嘿,還挺新鮮,以前真沒用過。研究了一下,感覺還挺實用。 例子 廢話不多少,先上例子,看咋用: #include stdio.h #include stdlib.h #include string.h #define MAX_LENGTH 10 // 0長度數組

null_null_null Avatar

@null_null_null

Nickname NULL