亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2397 | 回復(fù): 0
打印 上一主題 下一主題

[其他] erlang 支持事務(wù)/熱代碼替換的例子分析 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2009-08-18 16:33 |只看該作者 |倒序瀏覽

                                                               
server4.erl
%% 1.聲明接口:模塊的導(dǎo)出函數(shù)/導(dǎo)入函數(shù)
-module(server4).
-export([start/2,rpc/2,swap_code/2]).
%% 2.注冊服務(wù):啟動起一個服務(wù)進程并通知運行時環(huán)境
start(Name, Mod)->
    register(Name, spawn(fun()->loop(Name, Mod, Mod:init() end)).
%% 3.適配器: 把過程調(diào)用轉(zhuǎn)換成消息請求
swap_code(Name, Request)->
    rpc(Name, {swap_code, Request}).%% 4.服務(wù)請求: 消息發(fā)送-接收
rpc(Name, Request)->
    Name ! {self(), Request},
    receive
        {Name, crash} -> exit(rpc);
        {Name, ok, Response} -> Response
    end.
%% 5.服務(wù)響應(yīng):消息接收-發(fā)送
loop(Name, Mod, OldState)->
    receive
        {From, {swap_code, NewCallbackMod} ->
            From ! {Name, ok, ack},
            loop(Name, NewCallbackMod, OldState); %% 調(diào)換代碼
        {From, Request} ->
            try Mod:handle(Request, OldState) of
                {Response, NewState} ->
                    From ! {Name, ok, Response)
            catch
                _: Why ->
                    log_the_error(Name, Request, Why)
            end
    end.
               
               
               
               
               
               
               
               

本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/16651/showart_2030899.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP