资源简介
erlang 19.1 官网下载实在是困难,我把该版本提交到这里提供给大家和自己下载,安装rabbitMq必备安装包
代码片段和文件信息
/*
* %CopyrightBegin%
*
* Copyright Ericsson AB 1996-2016. All Rights Reserved.
*
* Licensed under the Apache License Version 2.0 (the “License“);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing software
* distributed under the License is distributed on an “AS IS“ BASIS
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* %CopyrightEnd%
*/
#ifdef HAVE_CONFIG_H
# include “config.h“
#endif
#include “sys.h“
#include “erl_sys_driver.h“
#include “erl_vm.h“
#include “global.h“
#include “hash.h“
#include “atom.h“
#define ATOM_SIZE 3000
IndexTable erts_atom_table; /* The index table */
#include “erl_smp.h“
static erts_smp_rwmtx_t atom_table_lock;
#define atom_read_lock() erts_smp_rwmtx_rlock(&atom_table_lock)
#define atom_read_unlock() erts_smp_rwmtx_runlock(&atom_table_lock)
#define atom_write_lock() erts_smp_rwmtx_rwlock(&atom_table_lock)
#define atom_write_unlock() erts_smp_rwmtx_rwunlock(&atom_table_lock)
#if 0
#define ERTS_ATOM_PUT_OPS_STAT
#endif
#ifdef ERTS_ATOM_PUT_OPS_STAT
static erts_smp_atomic_t atom_put_ops;
#endif
/* Functions for allocating space for the ext of atoms. We do not
* use malloc for each atom to prevent excessive memory fragmentation
*/
typedef struct _atom_text {
struct _atom_text* next;
unsigned char text[ATOM_TEXT_SIZE];
} AtomText;
static AtomText* text_list; /* List of text buffers */
static byte *atom_text_pos;
static byte *atom_text_end;
static Uint reserved_atom_space; /* Total amount of atom text space */
static Uint atom_space; /* Amount of atom text space used */
/*
* Print info about atom tables
*/
void atom_info(int to void *to_arg)
{
int lock = !ERTS_IS_CRASH_DUMPING;
if (lock)
atom_read_lock();
index_info(to to_arg &erts_atom_table);
#ifdef ERTS_ATOM_PUT_OPS_STAT
erts_print(to to_arg “atom_put_ops: %ld\n“
erts_smp_atomic_read_nob(&atom_put_ops));
#endif
if (lock)
atom_read_unlock();
}
/*
* Allocate an atom text segment.
*/
static void
more_atom_space(void)
{
AtomText* ptr;
ptr = (AtomText*) erts_alloc(ERTS_ALC_T_ATOM_TXT sizeof(AtomText));
ptr->next = text_list;
text_list = ptr;
atom_text_pos = ptr->text;
atom_text_end = atom_text_pos + ATOM_TEXT_SIZE;
reserved_atom_space += sizeof(AtomText);
VERBOSE(DEBUG_SYSTEM(“Allocated %d atom space\n“ATOM_TEXT_SIZE));
}
/*
* Allocate string space within an atom text segment.
*/
static byte*
atom_text_alloc(int bytes)
{
byte *res;
ASSERT(bytes <= MAX_ATOM_SZ_LIMIT);
if (atom_text_pos + bytes >= atom_text_end) {
more_atom_space();
}
res = atom_text_pos;
atom_text_pos += bytes;
atom_space += bytes;
return res;
}
/
- 上一篇:FFmpeg入门到精通.pdf
- 下一篇:OpenCV图像处理编程+源代码
相关资源
- RabbitMQ资源包
- RabbitMQ+erlang
- erlang_win_64位安装包
- erlang64位win安装20.3
- Erlang21.2安装包 Linux版
- otp_win64_20.2.exe
- Erlang趣学指南
- otp_win64_22.0.zip
- erlang高性能集群
- GitChat分享会-RabbitMQ典型场景实战-源码
- Erlang B公式计算器
- rabbitmq对外http api调用demo
- RabbitMQ实战视频.zip
- MultiCharts内建函数中文说明
- springboot使用rabbitmq工具类
- 爱尔兰损失B表计算
- 基于Erlang的gen_tcp聊天室代码功能完整
- Windows下使用NIF扩展Erlang完整
- esl-erlang-compat-R14B-1.el6.noarch.rpm
- rabbitMQ代码案例
- MSMQ、RabbitMQ、ActiveMQ消息队列调试工具
- erlang聊天室源码
- great_project.zip
- spring集成rabbitMq(基于direct、topic和
- Erlang 微分进化算法
- rabbitmq-demo学习
- erlang启动多节点,跨节点调用函数
- SpringBoot+redis+RabbitMq整合
- erlang使用post方式发送json数据
- RabbitMQ消息中间件技术精讲包含源码等
评论
共有 条评论