`
langzhe
  • 浏览: 292307 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

记录一下gen.erl超时的地方

阅读更多

 

本记得删除了。幸好有 服务器备份,招起来挺麻烦的。 

236 wait_resp_mon(Node, Mref, Timeout) ->
237     receive
238         {Mref, Reply} ->
239             erlang:demonitor(Mref, [flush]),
240             {ok, Reply};
241         {'DOWN', Mref, _, _, noconnection} ->
242             exit({nodedown, Node});
243         {'DOWN', Mref, _, _, Reason} ->
244             exit(Reason)
245     after Timeout ->
246             erlang:demonitor(Mref),
247             receive
248                 {'DOWN', Mref, _, _, _} -> true
249             after 0 -> true
250             end,
251             exit(timeoutmon)
252     end.
253 
254 wait_resp(Node, Tag, Timeout) ->
255     receive
256         {Tag, Reply} ->
257             monitor_node(Node, false),
258             {ok, Reply};
259         {nodedown, Node} ->
260             monitor_node(Node, false),
261             exit({nodedown, Node})
262     after Timeout ->
263             monitor_node(Node, false),
264             exit(timeoutresp)
265     end.
266 
267 %%
268 %% Send a reply to the client.
269 %%
 
0
0
分享到:
评论

相关推荐

    修正Socket Base Distribution一节实例代码的Bug

    首先,我们来看一下`chat_client.erl`,这很可能是客户端的实现。客户端通常负责发起连接请求,发送数据到服务器,并接收响应。在修复Bug的过程中,我们需要关注以下几个关键点: 1. **连接建立**:检查`gen_tcp:...

    erlang中dns解析

    8. **测试与调试**:在开发过程中,使用像`testdns.erl`这样的测试文件可以帮助验证和调试DNS解析代码。这个文件可能包含模拟DNS查询和响应的函数,或者是一些测试用例来确保解析逻辑的正确性。 在实际应用中,了解...

    Erlang中文手册.pdf

    可以通过在命令行输入`erl`来启动。Shell支持与外部程序通信,但文档指出关于这一点会有单独的指南解释。 #### 1.3 并行编程 - **1.3.1 进程**:Erlang的进程与其他语言中的线程类似,但它们是轻量级的,并且通过...

    tcp_client:一个Erlang TCP客户端连接管理器

    - 建立连接:`gen_tcp:connect(Host, Port, Options)`,其中`Host`是服务器IP,`Port`是服务器端口,`Options`是一些连接选项,如超时时间。 - 发送数据:`gen_tcp:send(Socket, Data)`,`Socket`是连接句柄,`...

    erlang入门手册

    - **Gen_Server、Gen_Fsm、Gen_Event**: OTP定义了多种通用的服务器行为,它们基于状态机和事件处理原则,允许开发者专注于业务逻辑的实现。 ### 总结 Erlang入门手册深入浅出地介绍了Erlang语言的基本概念,包括...

    Erlang中文手册

    - **启动方式**: 在大多数操作系统上,可以通过命令行输入 `erl` 来启动Erlang Shell。 - **功能**: 用户可以测试表达式、定义函数、加载模块等。 - **退出**: 使用 `q().` 命令退出Erlang Shell。 - **模块和...

Global site tag (gtag.js) - Google Analytics