亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍

skynet 近期更新及 sproto 若干 bug 的修復
來源:易賢網 閱讀:2092 次 日期:2015-04-09 14:29:42
溫馨提示:易賢網小編為您整理了“skynet 近期更新及 sproto 若干 bug 的修復”,方便廣大網友查閱!

skynet 的 1.0 版已經發布了 3 個 alpha 版,等穩定以后將發布 beta 版本。

最近的問題主要集中在一些我們在老項目中沒有使用到的特性上面。尤其是 sproto 這個模塊,我希望它將來作為 skynet 推薦的通訊協議,但我們老的項目開始的比 sproto 的項目早,所以早期項目全部使用的是 google protocol buffers (以及我自己做的實現)。 隨著新項目的開展,我們公司內部開始大面積使用 sproto ,也就發現了一些 bug ,在最近集中修復。

由于 skynet 使用多 lua VM 結構,為了不在每個 VM 里重復加載 sproto 協議,最近增加了 sproto 協議對象的共享。這個作為未寫入 sproto 文檔的特性提供,當然也不影響 sproto 在其它領域的使用。不過加這個特性比較匆忙,第一次提交時在 gc 方面遺留了一個 bug ,有可能導致多個 VM 重復釋放 C 對象,問題已經在倉庫最新的提交中修復。

另一個為了 skynet 的應用而特別加上的特性是讓 sproto 的 decode 可以接收指針(lightuserdata)。固然只接受 string 會讓實現更穩固一些,不過在 skynet 里很多地方 string 和 lightuserdata + size 是通用的,所以就順帶支持了。這樣可以減少一次內存拷貝。

根據使用的同學的需求,在 sproto 的 lua bingding 里增加了更為詳細的出錯提示,這可以幫助實際使用時的錯誤定位。另外,還增加更為嚴格的類型檢查。缺少這些檢查應該算是 bug ,因為使用 sproto 而不是 json 這種的無格式的協議,就是為了可以多做一些類型檢查的。復雜類型(在 lua 里用 table 實現)不檢查還會導致進程掛掉,這是絕對不可以接受的。

最后一個嚴重的 bug 是設計上的。

sproto 的 encode C API 采用的是 callback 的方式。由使用者(通常是其它語言的 binding )提供一個 callback 函數,C 核心根據 sproto 協議,每個字段調用一次這個函數。

如果它返回 -1 表示編碼錯誤(一般是 buffer 不夠大),會讓 C 核心的編碼過程錯誤返回。

如果它返回 0 表示這個字段不存在。這是因為 sproto 是允許字段不存在的,不存在的字段不會被編碼進最終的串。另外,對數組的編碼也依賴它。如果在編碼一個數組時返回 0 ,表示數組結束。

其它情況應返回一個正數,表示當前需要編碼的對象的長度。

對于簡單類型,如 boolean ,integer ,一般返回的是固定值。boolean 返回 4 ,integer 返回 4 或 8 (提示 C 核心這個整數是 32bit 還是 64bit 的)。最終編碼不一定按這個數字來,且 callback 函數得到的寫入地址也并非最終 buffer 的地址。C 核心會提供一個地址對齊的地址,然后根據 sproto 的編碼協議來轉換到最終 buffer 中,同時還要處理大小端問題。

對于不定長類型,如 string 或自定義類型。這個長度會幫助 C 核心了解應該將 buffer 指針后移多少字節。callback 函數將直接把數據寫入最終的 buffer 。而問題就出在這里。

當 string 是一個空串時,由于空串的長度為 0 ,會讓 C 核心誤會這個字段并不存在,這導致所有的空串無法編碼。更嚴重的是,如果是字符串數組,碰到空串就會停止編碼這個數組。最終的修補方案是,約定在編碼 string 的時候,應該返回字符串長度 + 1 。這屬于一個設計問題,所以除了 lua binding 之外,別的語言的 binding 也需要修改。好在目前已知的 python binding 也是我們公司的同學實現的,應該馬上能改過來。

對于用戶類型,沒有 string 這個問題。即使是空的對象,也有一個數據頭。所以不可能為 0 。對于空對象,不在數組中時,目前的 lua binding 會返回 0 ,讓 C 核心跳過這個字段,而在數組中時,則會返回一個空的數據頭。

利用 sproto 實現的 sharemap 也被查出一個 bug ,不過這個 bug 不屬于 sproto 。它的 metatable 被不小心循環引用了,如果一個字段不存在會導致 lua 檢測出 metatable 循環引用而出錯。

還有一個問題是在使用 httpc 時發現的,雖然已經知道,但因為用的不多也沒有特別在意。這次在正式版發布前,還是給出解決方案:

skynet 的 socket 層在處理域名的時候直接調用了系統 api getaddrinfo ,這會阻塞住線程。由于 skynet 的 socket 是單線程的,所以一旦做域名查詢,會導致 skynet 所有的 socket 消息處理阻塞。一般我們不會使用域名,即使用,也是在數據庫第一次連接的時候,通常發生在 skynet 進程啟動的時候,所以影響不大。但一旦使用 httpc 模塊,就很容易向外連接一個域名了。

由于系統并不提供異步的域名解析方法,很多其它網絡庫的做法是使用額外的線程去查詢域名。我并不想針對這個需求而大幅度修改已經穩定了的 skynet socket 層,所以提供了獨立的解決方案:那就是在上層自己使用 dns 協議發送 udp 包查詢。為了讓 httpc 模塊可以使用它,對其也做了一點改變,允許用戶連接一個 IP 地址,而自己在 http header 里填寫 host 字段。

另外,在充當 http 客戶端時,http 服務器往往會在返回的 header 中填寫多個 Set-Cookie 字段,之前對同名的 header 中字段沒有正確的處理,現在做了修正。(多個同名字段會生成一個 table )

更多信息請查看IT技術專欄

更多信息請查看技術文章
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點

版權所有:易賢網

亚洲免费不卡_在线视频精品_国产尤物精品_久久久久网址_久久精品91_欧美va天堂在线_狠狠入ady亚洲精品_亚洲午夜精品福利_国产精品草草_午夜精品久久99蜜桃的功能介绍
国产亚洲毛片在线| 99视频在线精品国自产拍免费观看| 亚洲精品黄色| 激情偷拍久久| 国内精品国语自产拍在线观看| 另类激情亚洲| 亚洲欧美日本日韩| 伊人成人网在线看| 亚洲午夜激情在线| 免费h精品视频在线播放| 亚洲国产第一| 亚洲精品护士| 一区二区三区免费看| 一本一道久久综合狠狠老精东影业| 国内综合精品午夜久久资源| 精品999成人| 狠狠入ady亚洲精品经典电影| 性欧美暴力猛交另类hd| 亚洲一区自拍| 欧美在线网址| 国产精品二区二区三区| 精品96久久久久久中文字幕无| 国产精品va| 亚洲大胆视频| 国产精品日韩一区二区| 久久看片网站| 91久久国产自产拍夜夜嗨| 99成人精品| 亚洲一区二区网站| 欧美精品首页| 国产亚洲综合精品| 欧美精品一区在线| 在线视频精品一区| 葵司免费一区二区三区四区五区| 午夜国产精品视频| 亚洲激情在线| 欧美一区二区| 日韩亚洲在线| 欧美ab在线视频| 亚洲国产精品一区二区第四页av| 精品999在线观看| 国产美女诱惑一区二区| 欧美精品入口| 亚洲免费在线| 亚洲精品影视| 欧美日韩一区在线观看视频| 野花国产精品入口| 欧美精品一线| 蜜桃av久久久亚洲精品| 亚洲另类视频| 1024精品一区二区三区| 欧美日韩一区二区高清| 久久动漫亚洲| 亚洲一二三区在线| 午夜日韩激情| 久久av一区二区三区| 亚洲欧洲一区二区在线观看| 欧美成人亚洲| 亚久久调教视频| 在线亚洲美日韩| 在线免费观看一区二区三区| 午夜精品一区二区在线观看| 噜噜噜噜噜久久久久久91| 日韩视频一区二区三区在线播放免费观看 | 国产精品久久一区二区三区| 欧美日韩一区自拍| 午夜日韩福利| 欧美日韩一区二区三区在线观看免| 久久国产主播精品| 久久精品人人| 久久国产精品亚洲va麻豆| 国产人成精品一区二区三| 亚洲精品资源| 中文精品视频| 亚洲一区免费看| 国产精品乱码| 久久国产99| 欧美成人有码| 欧美日韩综合另类| 亚洲二区视频| 国产精品日韩久久久| 在线免费观看欧美| 一本色道久久综合亚洲精品婷婷| 99国产精品久久久久老师| 99国产一区| 男女精品网站| 欧美一区二区三区四区夜夜大片| 欧美一区二区三区在线播放| 午夜久久黄色| 亚洲精品九九| 欧美亚洲视频| 欧美xxx在线观看| 国产精品豆花视频| 欧美日韩日本网| 欧美在线黄色| 亚洲精品女人| 久久亚洲国产精品日日av夜夜| 欧美成人国产| 影音先锋久久久| 国产精品推荐精品| 欧美成人69| 一本色道久久综合亚洲二区三区| 羞羞答答国产精品www一本| 欧美黄色免费| 中文精品视频一区二区在线观看| 亚洲免费观看| 欧美在线国产| 在线亚洲美日韩| 欧美日韩精品| 中文精品视频一区二区在线观看| 老牛国产精品一区的观看方式| 欧美日韩视频一区二区三区| 欧美日韩精品一本二本三本| 一本不卡影院| 欧美午夜一区| 亚洲欧美日本视频在线观看| 美脚丝袜一区二区三区在线观看| 亚洲国产高清一区| 久久一日本道色综合久久| 久久亚洲综合| 国产精品一区二区在线观看| 欧美亚洲不卡| 噜噜噜噜噜久久久久久91| 久久综合影音| 欧美在线综合| 国产三区精品| 亚洲精品影院| 亚洲香蕉网站| 久久夜色精品| 亚洲欧美日韩另类精品一区二区三区| 激情视频一区二区| 欧美精品大片| 久久综合九色综合久99| 亚洲综合99| 欧美性天天影院| 欧美日韩一视频区二区| 久久综合九色99| 国产精品永久| 在线一区欧美| 国产一区二区黄色| 国产视频在线观看一区| 一区二区欧美日韩| 一区二区福利| 亚洲欧美日韩综合国产aⅴ| 欧美激情 亚洲a∨综合| 亚洲国产高清一区| 国产精品久久久久久久久婷婷 | 国产一区91| 中日韩男男gay无套| 永久域名在线精品| 在线欧美日韩| 国产亚洲一区在线播放| 欧美一级专区| 亚洲国产99| 欧美国产91| 一区二区冒白浆视频| 欧美凹凸一区二区三区视频| 久久亚洲欧洲| 久久亚洲高清| 亚洲视频高清| 国产日韩欧美精品| 久久亚洲精品欧美| 亚洲欧美综合| 亚洲一级一区| 国产毛片一区| 欧美午夜不卡| 日韩视频在线播放| 香蕉精品999视频一区二区| 久久免费高清| 亚洲成人自拍视频| 一区二区精品在线| 女主播福利一区| 一区在线免费观看| 亚洲欧美电影在线观看| 午夜精品一区二区三区四区| 亚洲国产二区| 久久国产精品毛片| 久久电影一区| 亚洲日韩成人| 欧美精品成人| 国产精品一区在线播放| 欧美区亚洲区| 国产精品资源| 亚洲午夜精品福利| 美女黄色成人网| 亚洲三级色网| 欧美日韩少妇| 免费在线国产精品| 99视频一区| 欧美日韩综合久久| 校园春色综合网| 99视频精品免费观看| 国产精品多人| 久久精品五月| 国产视频欧美| 亚洲大片在线| 免播放器亚洲| 国产亚洲欧美一区二区| 亚洲无吗在线| 国产精品mv在线观看| 久久九九国产| 香蕉成人久久| 国产精品日本| 在线视频精品| 亚洲国产二区| 亚洲大片在线| 亚洲午夜电影| 国产精品国产精品| 欧美va天堂在线| 亚洲影院免费| 黄色精品一区| 国产自产在线视频一区| 午夜精品久久99蜜桃的功能介绍| 欧美亚洲免费| 午夜亚洲影视| 久久xxxx精品视频| 午夜亚洲性色福利视频| 亚洲欧美日韩视频二区 | 99精品99久久久久久宅男| 国产在线不卡| 一区在线视频观看| 91久久极品少妇xxxxⅹ软件| 亚洲激情午夜| 亚洲天堂激情| 亚洲精品1区2区| 亚洲精品视频啊美女在线直播| 亚洲午夜在线| 亚洲伦理一区| 99香蕉国产精品偷在线观看 | 欧美日韩国产欧| 午夜日韩激情| 亚洲午夜精品久久久久久app| 国内在线观看一区二区三区| 1000部精品久久久久久久久| 一区二区动漫| 亚洲国产日韩欧美一区二区三区| 国产精品a级| 亚洲精品少妇| 午夜亚洲视频| 你懂的一区二区| 亚洲电影av| 亚洲欧美日韩在线观看a三区| 久久免费黄色| 亚洲成人自拍视频| 久久精品91| 国产综合网站| 亚洲视频在线二区| 国产伦理一区| 国产精品99免费看| 国产日韩欧美三级| 久久精品国产99精品国产亚洲性色| 午夜天堂精品久久久久| 国产综合色产| 亚洲综合另类| 1024日韩| 亚洲一卡久久| 欧美一区二区| 中文精品视频一区二区在线观看| 久久国产主播| 亚洲毛片一区| 国产精品v欧美精品v日本精品动漫| 亚洲精品国产精品国自产观看| 久久精品日产第一区二区 | 国产综合色一区二区三区| 99国产精品久久久久久久成人热| 久久黄色影院| 亚洲美女网站| 国产精品v欧美精品v日本精品动漫| 亚洲精品影院| 国模一区二区三区| 久久国产欧美精品| 一本色道婷婷久久欧美| 国模大胆一区二区三区| 米奇777在线欧美播放| 亚洲国产精品久久久久婷婷老年| 男人天堂欧美日韩| 亚洲免费不卡| 1024日韩| 久色成人在线| 免费看亚洲片| 国产一区二区高清| 99精品99| aa日韩免费精品视频一| 好吊一区二区三区| 欧美+亚洲+精品+三区| 在线欧美视频| 在线日韩电影| 亚洲国产精品毛片| 亚洲高清资源| 在线视频观看日韩| 激情综合网址| 影音先锋中文字幕一区| 韩日欧美一区| 欧美日韩亚洲在线| 亚洲午夜91| 精品动漫3d一区二区三区免费版| 欧美午夜a级限制福利片| 久久综合九色综合网站| 久久亚洲国产精品日日av夜夜| 男人的天堂亚洲| 久久性色av| 午夜视频一区| 狠狠色综合网| 一区三区视频| 一区二区国产精品| 国产精品一级| 在线观看欧美一区| 一区二区精品在线| 亚洲欧美网站| 午夜精品区一区二区三| 国产精品v欧美精品v日韩| 国内精品久久久久久久影视蜜臀| 韩日在线一区| 国自产拍偷拍福利精品免费一| 亚洲午夜精品一区二区| 亚洲麻豆视频| 久久不射网站| 欧美日韩免费观看一区| 亚洲电影在线| 久久国产精品亚洲va麻豆| 午夜久久福利| 欧美日本中文| 日韩午夜在线| 欧美一区二区| 在线亚洲一区| 欧美日本国产精品| 一本久久知道综合久久| 欧美一区二区三区四区夜夜大片 | 亚洲精品视频一区二区三区 | 亚洲影视在线| 亚洲国内在线| 在线日韩中文| 国产自产精品| 欧美大片专区| 午夜精品美女久久久久av福利| 国产一区二区三区奇米久涩| 精品91在线| 亚洲视频中文| 韩日视频一区| 国产综合婷婷| 欧美日韩在线一二三| 久久天堂成人| 久色成人在线| 午夜精品av| 国产精品大全| 黄色成人av网站| 国产精品黄色| 国模精品娜娜一二三区| 好吊色欧美一区二区三区视频| 欧美+亚洲+精品+三区| 久久久噜噜噜| 午夜国产欧美理论在线播放| 欧美激情视频一区二区三区在线播放| 性娇小13――14欧美| 欧美中文字幕| 欧美96在线丨欧| 国内一区二区三区| 亚洲精品偷拍| 亚洲一区二区在| 久久久久.com| 国内精品久久久久久久果冻传媒 | 国产精品综合| 老司机一区二区三区| 欧美成人蜜桃| 狠狠干综合网| 一区二区免费在线视频| 性欧美长视频| 国产主播一区| 国产精品美女久久久| 欧美一区二区三区久久精品茉莉花| 欧美日本亚洲韩国国产| 亚洲欧洲一区| 模特精品在线| 国内久久精品| 国产视频欧美| 欧美啪啪一区| 亚洲国内在线| 噜噜噜噜噜久久久久久91| 国产一区再线| 免费亚洲视频| 亚洲国产片色| 久久在线91| 夜夜嗨一区二区三区| 午夜视频精品| 国产精品一区毛片| 国产一区视频在线观看免费| 国产欧美日韩一区二区三区| 久久伊人亚洲| 国产一级一区二区| 黄色亚洲大片免费在线观看| 在线视频免费在线观看一区二区| 久久天堂成人| 亚洲在线视频| 亚洲国产1区| 欧美日产一区二区三区在线观看| 国产日韩精品一区观看| 国产主播一区| 欧美一区成人| 亚洲一区三区在线观看| 亚洲每日在线|