detail about lock impl
REF A futex overview and update let’s talk about locks
REF A futex overview and update let’s talk about locks
这里主要讲下bind socket到ip发生了什么,还有android的bindsocket是怎么实现的 Linux linux下的bind操作在man手册上是这样解释的,其实比较无力 When a socket is created with socket(2), it exists in a name space (address family) but has no addr...
Linux中有一些标准的接口名称,这里列出了这些名称。大多数驱动程序支持多个接口,在这种情况下,接口会按照eth0和eth1这样的方式编号: lo 这是本地环回接口。它用于测试目的,以及一些网络应用程序。它就像一个闭合电路,任何写入的数据报都会立即返回到主机的网络层。内核中始终有一个环回设备存在,拥有多个似乎没有太大意义。 eth0, eth1, … 这些是Ethernet卡接口。它...
一堆leveldb的解析blog level db archive 使用 C++20 Ranges 标准库实现日历程序 使用 C++20 Ranges 标准库实现日历程序 有哪些思维透彻的历史书籍推荐? 有哪些思维透彻的历史书籍推荐? LocalStorage vs. IndexedDB vs. Cookies vs. OPFS vs. WASM-SQLi...
先抛出问题代码,下面代码的这种情况下存在一个内部指针泄露问题,伴随vector扩容,ItemManager的function内部存储的指针会指向错误的Item对象 因此,下面的这个Item类,虽然是move constructable的,但是实际上因为使用了lambda + capture了this指针,等价于将内部的this外传,item manager没有随之处理这种move的情况。 ...
准备看下asio的实现,就在win下搭建了。 准备仓库 git clone https://github.com/chriskohlhoff/asio.git 写CMakeLists.txt cmake_minimum_required(VERSION 3.10) project(StandaloneAsioExample) set(CMAKE_CXX_STANDARD 14)...
主要是在callback之后,当前发起cb的类可能在cb之后被销毁,但是在cb之后还有一些操作需要做,这个时候要么shared_ptr来保障,要么自定义一个guard配合unique ptr的deleter做保障 void ObjectA::Do() {} if (callback) { // NOTE: this callback may destroy the curren...
逆向工程intro Reverse Engineering For Everyone! consteval & constexpr & constinit consteval & constinit c++里的ub,编译器是怎么对待UB的 浅谈 C++ Undefined Behavior circular que Non-...
参考clang-tidy checkers 最后成品 UseColor: true Checks: > android-cloexec-*, android-comparison-in-temp-failure-retry, bugprone-*, clang-analyzer-*, modernize-*, -modernize-use-trailing...
如果hook了库函数,集成的时候对于运行时库的link顺序其实是有点要求的 计算机系统篇之链接(16):真正理解 RTLD_NEXT 的作用 Dangers of using dlsym() with RTLD_NEXT linux hook机制研究