原创 gdb調試,lua c api返回值

gdb時經常發生找不到源文件的情況,使用下面命令dir /home/build/thirdparty/lua/src 就可以解決。 前段時間項目頻

原创 關於_ENV(lua5.2 or later)

問:  我調用了test模塊中的del_env函數,但是main文件中的print並沒有消失。 -- test.lua local test = {

原创 Skynet網絡模型

接口: // 創建epoll套接字 返回socket_server*上下文 struct socket_server * socket_server_create(); // 釋放資源 void socket_server_release

原创 fastdb分析

因爲項目中使用的fastdb,前2天的面試也有所提到,就想着要仔細研究一下。 在網上看到了一下主存數據庫的性能測試,相對於BerkeleyDB和SQLite來比,fastdb的性能還是略勝一籌,時間精力有限,本人沒有對SQLite,Ber

原创 關於std::map erase

詳見代碼: std::map<uint32, CTmpFightState>::iterator iterTmp = m_mapTmpFightState.begin(); for (; iterTmp != m_mapTmpFightS

原创 Skynet協同模型

源文件:lualib/skynet.lua skynet中對協同程序的應用 一、啓動 //1. skynet.start(start_func) function skynet.start(start_func) c.callback

原创 Mysql 存儲過程 不存在錯誤

DELIMITER // CREATE PROCEDURE demo_param2(IN p_in int) BEGIN select p_in; SET p_in = 2; select p_in; END; //

原创 查看進程,線程業務執行情況

ps -Lf 23281 這個可以看出哪一個線程是最耗資源的pstack 23281 這個可以輸出當前正在執行的線程代碼棧信息 詳細的自行去goog

原创 Linux多線程服務器端編程:使用muduo C++網絡庫 讀書筆記

1. 需要注意: scoped_ptr/shared_ptr/weak_ptr都是值語意,要麼是棧上對象,或是其他對象的直接數據成員,或是標準容器裏的元素。幾乎不會有下面這種用法: shared_ptr<Foo>* pFoo = new

原创 pthread_cond_timedwait返回EINVAL

最近發現程序的business.wait(100); 使用起來造成cpu負載很高 代碼如下: struct timespec delay; if ( !clock_gettime(CLOCK_REALTIME,&delay

原创 mq_open permission denied問題

在UNIX網絡編程:卷2-進程間通信中的一個例子如下:#include <mqueue.h> #include <stdio.h> #include

原创 線程特定數據

在多線程程序裏,我們有可能經常遇到因爲函數使用的靜態變量無法爲不同的線程保存各自的值的問題。有很多辦法可以解決,本文就來看一下通過線程特定數據來解決這樣的問題。 每個系統支持有限的線程特定數據元素。POSIX要求這個限制不小於128(每個

原创 UNIX網絡編程:卷1-讀書筆記

1. if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0) err_sys("socket error");作爲一種編碼風格,作者總是在這樣的兩個左括號間加一個空格,提示比較運

原创 __cxa_pure_virtual的情況

總結了一下網上關於__cxa_pure_virtual出現的可能: 1:線程切換的時候, 一個清空了虛函數表,另外一個線程卻正要用 2:構造函數調用虛函數也會出這個問題 3:垂懸指針也會出現這個現象,父類指針指向子類實例,子類被釋放後,用

原创 軟渲染-雙線性插值

    雙線性插值可以是紋理的邊緣插值效果更好。這裏有詳細的說明,我就不贅述了。在代碼過程中一定要特別注意由於浮點數取整所造成的誤差。源碼在此 效果圖1:無插值 效果圖2:雙線性插值 可以清楚的看到,紋理邊緣被虛化。