本系列講解了 Linux-PAM 的工作機(jī)制和配置方式,并利用幾個(gè) Linux-PAM 模塊做一些有趣的小實(shí)驗(yàn)。附錄中介紹了一些常用的 Linux-PAM 模塊。 本文的目標(biāo)...
引言 系統(tǒng)運(yùn)維時(shí),經(jīng)常會(huì)使用top或者free查看服務(wù)器的內(nèi)存使用情況,一般情況下,顯示結(jié)果中的buffer/cache都比較大,查閱各種資料也無(wú)法得到比較明確的答案。閱讀本...
skynet 中的服務(wù)都是由消息來(lái)負(fù)責(zé)驅(qū)動(dòng)的,即便是 lua 服務(wù)也不例外。本文討論的主題為 skynet 框架下,同一 skynet 節(jié)點(diǎn)內(nèi)不同的lua 服務(wù)之間是如何通過(guò)...
在上一篇文章中《skynet 源碼閱讀筆記 —— 引導(dǎo)服務(wù) bootstrap 的啟動(dòng)》[http://www.itdecent.cn/p/1eb22d418087],我們...
引導(dǎo)服務(wù) bootstrap 的啟動(dòng) skynet 在啟動(dòng)的初期,在 skynet_start 函數(shù)中創(chuàng)建了兩個(gè)服務(wù) logger 和 bootstrap。其中 bootst...
基本數(shù)據(jù)結(jié)構(gòu) 要了解 skynet 的定時(shí)器機(jī)制,需要先了解 skynet 中的 timer 的數(shù)據(jù)結(jié)構(gòu)及初始化代碼(skynet 中所有 timer 相關(guān)的代碼都存放于 s...
skynet 中 main 函數(shù)的流程 skynet 的 main 函數(shù)位于 skynet_main.c 文件當(dāng)中,其定義如下: 使用過(guò) skynet 的人都知道,skyne...
1.基本概念:模塊與服務(wù) 模塊(module):在skynet中,模塊是指符合規(guī)范的 C 共享庫(kù)文件。一個(gè)符合規(guī)范的 C 共享庫(kù)應(yīng)當(dāng)具備 *_create、*_signal、...
基本數(shù)據(jù)結(jié)構(gòu)之消息隊(duì)列 skynet 采用了二級(jí)消息隊(duì)列模式,其中頂層消息隊(duì)列為 global_queue,而底層的消息隊(duì)列為 message_queue,它們的具體定義如下...
在 CMake 中使用 Google-Test 示例目錄的源碼樹(shù): 測(cè)試通過(guò): 測(cè)試失敗: 具體的測(cè)試信息會(huì)保存在 build/Testing/Temporary/LastT...
宏的意義 一些編譯器宏的使用方法(clang 的線(xiàn)程安全注解 —— Thread Safety Annotation):修飾類(lèi)的宏//CAPABILITY 表明某個(gè)類(lèi)對(duì)象可以...
問(wèn)題描述 給定一個(gè)數(shù)組 nums ,如果 i < j 且 nums[i] > 2*nums[j] 我們就將 (i, j) 稱(chēng)作一個(gè)重要翻轉(zhuǎn)對(duì)。你需要返回給定數(shù)組中的重要翻轉(zhuǎn)對(duì)...
Libevent 如何定義自己的日志輸出格式 Libevent 的日志系統(tǒng)中定義了四個(gè)日志的輸出等級(jí),默認(rèn)情況下會(huì)將日志信息輸出到終端。不過(guò) Libevent 允許用戶(hù)設(shè)置自...
閱讀本文之前請(qǐng)確保你看過(guò)上一篇文章:Libevent 源碼閱讀筆記(一)、從一個(gè)簡(jiǎn)單例子開(kāi)始(上) 在上一篇文章中,我們提到了關(guān)于 Libevent 使用的一個(gè)基本邏輯: 調(diào)...
什么是 Libevent Libevent 是一款基于 Reactor 模式實(shí)現(xiàn),由事件驅(qū)動(dòng)的高性能開(kāi)源 I/O 框架庫(kù),它提供一組 API 并允許開(kāi)發(fā)者為事件注冊(cè)回調(diào)函數(shù)。...