加载中
erlang连接acceptor池ranch源码分析

终于把ranch看完了,放到了github上,https://github.com/astutesparrow/ranch 为了阅读方便,把版权信息去掉了,加上了所有的中文注释,和我自己的理解,doc目录有画了一张监督树的图 只是为...

使用callback实现自定义的erlang行为模式

之前erlang中自定义行为模式,需要导出behaviour_info函数,比如: -module(gen_foo). -export([behaviour_info/1]). behaviour_info(callbacks) -> [{foo, 0}, {bar, 1}, {baz, 2}]; b...

gen_server的enter_loop分析

在看ranch user guide的过程中,发现实现protocol handler需要使用特殊的gen_server形式,也就是enter_loop函数调用,事例代码如下: -module(echo_protocol). -behaviour(ranch_protocol). ...

lager:error()调用的完整流程分析

这一节分析一条日志记录的完整流程 假设源代码中要打印日志,有这么一行 lager:error([{request, RequestID},{vhost, Vhost}], "Permission denied ~s", [User]) 经过上一节的分析,那么经过...

erlang的时间处理

os:timestamp() = Timestamp Timestamp = {MegaSecs :: integer() >= 0, 10^6 秒 Secs :: integer() >= 0, 秒 MicroSecs :: integer() >= 0} 微秒 返回操作系统的时间戳。 erlang:now() -> ...

erlang的类型规范type和opaque的区别

erlang中声明新类型,使用type和opaque关键字 type的使用 -module(module1). -export_type([my_tup2/0]). -type my_tup2() :: {my_tup2, atom(), atom()}. -module(module2). -export([ma...

2013/03/30 16:18
3.6K
蛋疼的erlang dialyzer

dialyzer:erlang的静态代码分析工具 -module(module1). -export([main/0]). -export_type([my_tup2/0]). -opaque my_tup2() :: {atom(), atom()}. -spec foo5(my_tup2())-> ok. foo5({_,...

2013/03/30 15:59
589
lager trace file的流程和实现分析

tracing是跟踪的意思,在lager中指的是跟踪用户打印的日志,根据属性做日志消息的重定向,如果没有tracing,那么lager没法做到按模块打印日志。 调用 lager:trace_file("logs/trace.log", [...

2013/03/28 00:38
912
解析Erlang日志组件lager的监督树和模块

lager_app 应用行为模式实现 Handlers = [{ lager_console_backend, info}, { lager_file_backend, [ {"log/error.log", error, 10485760, "", 5}, {"log/console.log", info, 10485760, "",...

ETS Concurrency

Concurrency This module provides some limited support for concurrent access. All updates to single objects are guaranteed to be both atomic and isolated. This means that an upda...

解析Erlang日志组件lager的lager_transform模块

使用 lager 的时候,在编译应用的时候,需要加入选项 {parse_transform, lager_transform} erlc 会在编译你的项目源代码的时候,把生成的 abstract format forms 交给 lager_transform 模块的...

2013/03/19 03:01
1W

没有更多内容

加载失败,请刷新页面

没有更多内容

返回顶部
顶部