performance opt.: replace snprintf
parent
0b4936bd8f
commit
03f64998ce
|
|
@ -229,7 +229,7 @@ int sf_binlog_index_save(SFBinlogIndexContext *ctx)
|
||||||
int result;
|
int result;
|
||||||
char tmp_filename[PATH_MAX];
|
char tmp_filename[PATH_MAX];
|
||||||
|
|
||||||
snprintf(tmp_filename, sizeof(tmp_filename), "%s.tmp", ctx->filename);
|
fc_combine_two_string(ctx->filename, "tmp", '.', tmp_filename);
|
||||||
if ((result=save(ctx, tmp_filename)) != 0) {
|
if ((result=save(ctx, tmp_filename)) != 0) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -305,7 +305,7 @@ void sf_binlog_writer_finish(SFBinlogWriterInfo *writer)
|
||||||
uint32_t last_timestamp;
|
uint32_t last_timestamp;
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
if (writer->fw.file.name != NULL) {
|
if (writer->fw.file.name.str != NULL) {
|
||||||
while (writer->thread->running && !fc_queue_empty(
|
while (writer->thread->running && !fc_queue_empty(
|
||||||
&writer->thread->queue))
|
&writer->thread->queue))
|
||||||
{
|
{
|
||||||
|
|
@ -333,8 +333,8 @@ void sf_binlog_writer_finish(SFBinlogWriterInfo *writer)
|
||||||
deal_binlog_records(writer->thread, wb_head, &last_timestamp);
|
deal_binlog_records(writer->thread, wb_head, &last_timestamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(writer->fw.file.name);
|
free(writer->fw.file.name.str);
|
||||||
writer->fw.file.name = NULL;
|
writer->fw.file.name.str = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (writer->fw.file.fd >= 0) {
|
if (writer->fw.file.fd >= 0) {
|
||||||
|
|
|
||||||
|
|
@ -48,9 +48,10 @@
|
||||||
|
|
||||||
static inline void sf_file_writer_get_binlog_filename(SFFileWriterInfo *writer)
|
static inline void sf_file_writer_get_binlog_filename(SFFileWriterInfo *writer)
|
||||||
{
|
{
|
||||||
sprintf(writer->file.name, "%s/%s/%s"SF_BINLOG_FILE_EXT_FMT,
|
sf_file_writer_get_filename_ex(
|
||||||
writer->cfg.data_path, writer->cfg.subdir_name,
|
writer->cfg.data_path, writer->cfg.subdir_name,
|
||||||
writer->cfg.file_prefix, writer->binlog.last_index);
|
writer->cfg.file_prefix, writer->binlog.last_index,
|
||||||
|
writer->file.name.str, writer->file.name.size);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void sf_file_writer_get_index_filename_ex(const char *data_path,
|
static inline void sf_file_writer_get_index_filename_ex(const char *data_path,
|
||||||
|
|
@ -232,13 +233,13 @@ static int open_writable_binlog(SFFileWriterInfo *writer)
|
||||||
}
|
}
|
||||||
|
|
||||||
sf_file_writer_get_binlog_filename(writer);
|
sf_file_writer_get_binlog_filename(writer);
|
||||||
writer->file.fd = open(writer->file.name, O_WRONLY |
|
writer->file.fd = open(writer->file.name.str, O_WRONLY |
|
||||||
O_CREAT | O_APPEND | O_CLOEXEC, 0644);
|
O_CREAT | O_APPEND | O_CLOEXEC, 0644);
|
||||||
if (writer->file.fd < 0) {
|
if (writer->file.fd < 0) {
|
||||||
logError("file: "__FILE__", line: %d, "
|
logError("file: "__FILE__", line: %d, "
|
||||||
"open file \"%s\" fail, "
|
"open file \"%s\" fail, "
|
||||||
"errno: %d, error info: %s",
|
"errno: %d, error info: %s",
|
||||||
__LINE__, writer->file.name,
|
__LINE__, writer->file.name.str,
|
||||||
errno, STRERROR(errno));
|
errno, STRERROR(errno));
|
||||||
return errno != 0 ? errno : EACCES;
|
return errno != 0 ? errno : EACCES;
|
||||||
}
|
}
|
||||||
|
|
@ -248,7 +249,7 @@ static int open_writable_binlog(SFFileWriterInfo *writer)
|
||||||
logError("file: "__FILE__", line: %d, "
|
logError("file: "__FILE__", line: %d, "
|
||||||
"lseek file \"%s\" fail, "
|
"lseek file \"%s\" fail, "
|
||||||
"errno: %d, error info: %s",
|
"errno: %d, error info: %s",
|
||||||
__LINE__, writer->file.name,
|
__LINE__, writer->file.name.str,
|
||||||
errno, STRERROR(errno));
|
errno, STRERROR(errno));
|
||||||
return errno != 0 ? errno : EIO;
|
return errno != 0 ? errno : EIO;
|
||||||
}
|
}
|
||||||
|
|
@ -259,22 +260,23 @@ static int open_writable_binlog(SFFileWriterInfo *writer)
|
||||||
static int open_next_binlog(SFFileWriterInfo *writer)
|
static int open_next_binlog(SFFileWriterInfo *writer)
|
||||||
{
|
{
|
||||||
sf_file_writer_get_binlog_filename(writer);
|
sf_file_writer_get_binlog_filename(writer);
|
||||||
if (access(writer->file.name, F_OK) == 0) {
|
if (access(writer->file.name.str, F_OK) == 0) {
|
||||||
char bak_filename[PATH_MAX];
|
char bak_filename[PATH_MAX];
|
||||||
char date_str[32];
|
char date_str[32];
|
||||||
|
|
||||||
snprintf(bak_filename, sizeof(bak_filename), "%s.%s",
|
formatDatetime(g_current_time, "%Y%m%d%H%M%S",
|
||||||
writer->file.name, formatDatetime(g_current_time,
|
date_str, sizeof(date_str));
|
||||||
"%Y%m%d%H%M%S", date_str, sizeof(date_str)));
|
fc_combine_two_string(writer->file.name.str,
|
||||||
if (rename(writer->file.name, bak_filename) == 0) {
|
date_str, '.', bak_filename);
|
||||||
|
if (rename(writer->file.name.str, bak_filename) == 0) {
|
||||||
logWarning("file: "__FILE__", line: %d, "
|
logWarning("file: "__FILE__", line: %d, "
|
||||||
"binlog file %s exist, rename to %s",
|
"binlog file %s exist, rename to %s",
|
||||||
__LINE__, writer->file.name, bak_filename);
|
__LINE__, writer->file.name.str, bak_filename);
|
||||||
} else {
|
} else {
|
||||||
logError("file: "__FILE__", line: %d, "
|
logError("file: "__FILE__", line: %d, "
|
||||||
"rename binlog %s to backup %s fail, "
|
"rename binlog %s to backup %s fail, "
|
||||||
"errno: %d, error info: %s",
|
"errno: %d, error info: %s",
|
||||||
__LINE__, writer->file.name, bak_filename,
|
__LINE__, writer->file.name.str, bak_filename,
|
||||||
errno, STRERROR(errno));
|
errno, STRERROR(errno));
|
||||||
return errno != 0 ? errno : EPERM;
|
return errno != 0 ? errno : EPERM;
|
||||||
}
|
}
|
||||||
|
|
@ -293,7 +295,7 @@ static int do_write_to_file(SFFileWriterInfo *writer,
|
||||||
logError("file: "__FILE__", line: %d, "
|
logError("file: "__FILE__", line: %d, "
|
||||||
"write to binlog file \"%s\" fail, "
|
"write to binlog file \"%s\" fail, "
|
||||||
"errno: %d, error info: %s",
|
"errno: %d, error info: %s",
|
||||||
__LINE__, writer->file.name,
|
__LINE__, writer->file.name.str,
|
||||||
result, STRERROR(result));
|
result, STRERROR(result));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -303,7 +305,7 @@ static int do_write_to_file(SFFileWriterInfo *writer,
|
||||||
result = errno != 0 ? errno : EIO;
|
result = errno != 0 ? errno : EIO;
|
||||||
logError("file: "__FILE__", line: %d, "
|
logError("file: "__FILE__", line: %d, "
|
||||||
"fsync to binlog file \"%s\" fail, errno: %d, "
|
"fsync to binlog file \"%s\" fail, errno: %d, "
|
||||||
"error info: %s", __LINE__, writer->file.name,
|
"error info: %s", __LINE__, writer->file.name.str,
|
||||||
result, STRERROR(result));
|
result, STRERROR(result));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -337,7 +339,7 @@ int sf_file_writer_direct_write(SFFileWriterInfo *writer,
|
||||||
if (result != 0) {
|
if (result != 0) {
|
||||||
logError("file: "__FILE__", line: %d, "
|
logError("file: "__FILE__", line: %d, "
|
||||||
"open binlog file \"%s\" fail",
|
"open binlog file \"%s\" fail",
|
||||||
__LINE__, writer->file.name);
|
__LINE__, writer->file.name.str);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -380,7 +382,7 @@ int sf_file_writer_fsync(SFFileWriterInfo *writer)
|
||||||
result = errno != 0 ? errno : EIO;
|
result = errno != 0 ? errno : EIO;
|
||||||
logError("file: "__FILE__", line: %d, "
|
logError("file: "__FILE__", line: %d, "
|
||||||
"fsync to binlog file \"%s\" fail, errno: %d, "
|
"fsync to binlog file \"%s\" fail, errno: %d, "
|
||||||
"error info: %s", __LINE__, writer->file.name,
|
"error info: %s", __LINE__, writer->file.name.str,
|
||||||
result, STRERROR(result));
|
result, STRERROR(result));
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -504,8 +506,7 @@ int sf_file_writer_init(SFFileWriterInfo *writer, const char *data_path,
|
||||||
writer->cfg.call_fsync = call_fsync;
|
writer->cfg.call_fsync = call_fsync;
|
||||||
writer->cfg.file_rotate_size = file_rotate_size;
|
writer->cfg.file_rotate_size = file_rotate_size;
|
||||||
writer->cfg.data_path = data_path;
|
writer->cfg.data_path = data_path;
|
||||||
path_len = snprintf(filepath, sizeof(filepath),
|
path_len = fc_combine_full_filepath(data_path, subdir_name, filepath);
|
||||||
"%s/%s", data_path, subdir_name);
|
|
||||||
if ((result=fc_check_mkdir_ex(filepath, 0775, &create)) != 0) {
|
if ((result=fc_check_mkdir_ex(filepath, 0775, &create)) != 0) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
@ -514,14 +515,11 @@ int sf_file_writer_init(SFFileWriterInfo *writer, const char *data_path,
|
||||||
}
|
}
|
||||||
|
|
||||||
writer->file.fd = -1;
|
writer->file.fd = -1;
|
||||||
snprintf(writer->cfg.subdir_name,
|
fc_safe_strcpy(writer->cfg.subdir_name, subdir_name);
|
||||||
sizeof(writer->cfg.subdir_name),
|
fc_safe_strcpy(writer->cfg.file_prefix, file_prefix);
|
||||||
"%s", subdir_name);
|
writer->file.name.size = path_len + 32;
|
||||||
snprintf(writer->cfg.file_prefix,
|
writer->file.name.str = (char *)fc_malloc(writer->file.name.size);
|
||||||
sizeof(writer->cfg.file_prefix),
|
if (writer->file.name.str == NULL) {
|
||||||
"%s", file_prefix);
|
|
||||||
writer->file.name = (char *)fc_malloc(path_len + 32);
|
|
||||||
if (writer->file.name == NULL) {
|
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -542,9 +540,9 @@ void sf_file_writer_destroy(SFFileWriterInfo *writer)
|
||||||
close(writer->file.fd);
|
close(writer->file.fd);
|
||||||
writer->file.fd = -1;
|
writer->file.fd = -1;
|
||||||
}
|
}
|
||||||
if (writer->file.name != NULL) {
|
if (writer->file.name.str != NULL) {
|
||||||
free(writer->file.name);
|
free(writer->file.name.str);
|
||||||
writer->file.name = NULL;
|
writer->file.name.str = NULL;
|
||||||
}
|
}
|
||||||
sf_binlog_buffer_destroy(&writer->binlog_buffer);
|
sf_binlog_buffer_destroy(&writer->binlog_buffer);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,7 +28,8 @@
|
||||||
#define SF_BINLOG_DEFAULT_ROTATE_SIZE (1024 * 1024 * 1024)
|
#define SF_BINLOG_DEFAULT_ROTATE_SIZE (1024 * 1024 * 1024)
|
||||||
#define SF_BINLOG_NEVER_ROTATE_FILE 0
|
#define SF_BINLOG_NEVER_ROTATE_FILE 0
|
||||||
#define SF_BINLOG_FILE_PREFIX "binlog"
|
#define SF_BINLOG_FILE_PREFIX "binlog"
|
||||||
#define SF_BINLOG_FILE_EXT_FMT ".%06d"
|
#define SF_BINLOG_FILE_EXT_LEN 6
|
||||||
|
#define SF_BINLOG_FILE_EXT_FMT ".%0"FC_MACRO_TOSTRING(SF_BINLOG_FILE_EXT_LEN)"d"
|
||||||
|
|
||||||
struct sf_file_writer_info;
|
struct sf_file_writer_info;
|
||||||
|
|
||||||
|
|
@ -53,8 +54,11 @@ typedef struct sf_file_writer_info {
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
int fd;
|
int fd;
|
||||||
int64_t size;
|
int64_t size; //file size
|
||||||
char *name;
|
struct {
|
||||||
|
char *str;
|
||||||
|
int size;
|
||||||
|
} name;
|
||||||
} file;
|
} file;
|
||||||
|
|
||||||
int64_t total_count;
|
int64_t total_count;
|
||||||
|
|
@ -222,7 +226,8 @@ static inline const char *sf_file_writer_get_filepath(
|
||||||
const char *data_path, const char *subdir_name,
|
const char *data_path, const char *subdir_name,
|
||||||
char *filepath, const int size)
|
char *filepath, const int size)
|
||||||
{
|
{
|
||||||
snprintf(filepath, size, "%s/%s", data_path, subdir_name);
|
fc_get_full_filepath_ex(data_path, strlen(data_path),
|
||||||
|
subdir_name, strlen(subdir_name), filepath, size);
|
||||||
return filepath;
|
return filepath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -231,8 +236,34 @@ static inline const char *sf_file_writer_get_filename_ex(
|
||||||
const char *file_prefix, const int binlog_index,
|
const char *file_prefix, const int binlog_index,
|
||||||
char *filename, const int size)
|
char *filename, const int size)
|
||||||
{
|
{
|
||||||
snprintf(filename, size, "%s/%s/%s"SF_BINLOG_FILE_EXT_FMT,
|
char *p;
|
||||||
data_path, subdir_name, file_prefix, binlog_index);
|
int data_path_len;
|
||||||
|
int subdir_name_len;
|
||||||
|
int file_prefix_len;
|
||||||
|
|
||||||
|
data_path_len = strlen(data_path);
|
||||||
|
subdir_name_len = strlen(subdir_name);
|
||||||
|
file_prefix_len = strlen(file_prefix);
|
||||||
|
if (data_path_len + subdir_name_len + file_prefix_len +
|
||||||
|
4 + SF_BINLOG_FILE_EXT_LEN >= size)
|
||||||
|
{
|
||||||
|
snprintf(filename, size, "%s/%s/%s"SF_BINLOG_FILE_EXT_FMT,
|
||||||
|
data_path, subdir_name, file_prefix, binlog_index);
|
||||||
|
return filename;
|
||||||
|
}
|
||||||
|
|
||||||
|
p = filename;
|
||||||
|
memcpy(p, data_path, data_path_len);
|
||||||
|
p += data_path_len;
|
||||||
|
*p++ = '/';
|
||||||
|
memcpy(p, subdir_name, subdir_name_len);
|
||||||
|
p += subdir_name_len;
|
||||||
|
*p++ = '/';
|
||||||
|
memcpy(p, file_prefix, file_prefix_len);
|
||||||
|
p += file_prefix_len;
|
||||||
|
*p++ = '.';
|
||||||
|
fc_ltostr_ex(binlog_index, p, SF_BINLOG_FILE_EXT_LEN);
|
||||||
|
|
||||||
return filename;
|
return filename;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -250,6 +250,7 @@ int sf_get_base_path_from_conf_file(const char *config_filename)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SF_G_BASE_PATH_LEN = strlen(SF_G_BASE_PATH_STR);
|
||||||
SF_G_BASE_PATH_INITED = true;
|
SF_G_BASE_PATH_INITED = true;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
@ -271,6 +272,7 @@ int sf_load_global_base_path(IniFullContext *ini_ctx)
|
||||||
}
|
}
|
||||||
|
|
||||||
chopPath(SF_G_BASE_PATH_STR);
|
chopPath(SF_G_BASE_PATH_STR);
|
||||||
|
SF_G_BASE_PATH_LEN = strlen(SF_G_BASE_PATH_STR);
|
||||||
if (!fileExists(SF_G_BASE_PATH_STR)) {
|
if (!fileExists(SF_G_BASE_PATH_STR)) {
|
||||||
if ((result=fc_check_mkdir_ex(SF_G_BASE_PATH_STR, 0775,
|
if ((result=fc_check_mkdir_ex(SF_G_BASE_PATH_STR, 0775,
|
||||||
&SF_G_BASE_PATH_CREATED)) != 0)
|
&SF_G_BASE_PATH_CREATED)) != 0)
|
||||||
|
|
@ -525,7 +527,7 @@ static void set_bind_address(const char *bind_addr, char *ipv4_bind_addr,
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(new_bind_addr, sizeof(new_bind_addr), "%s", bind_addr);
|
fc_safe_strcpy(new_bind_addr, bind_addr);
|
||||||
count = splitEx(new_bind_addr, ',', cols, 2);
|
count = splitEx(new_bind_addr, ',', cols, 2);
|
||||||
for (i=0; i<count; i++) {
|
for (i=0; i<count; i++) {
|
||||||
ip_addr = cols[i];
|
ip_addr = cols[i];
|
||||||
|
|
@ -535,9 +537,13 @@ static void set_bind_address(const char *bind_addr, char *ipv4_bind_addr,
|
||||||
++ip_addr;
|
++ip_addr;
|
||||||
len -= 2;
|
len -= 2;
|
||||||
}
|
}
|
||||||
snprintf(ipv6_bind_addr, addr_size, "%.*s", len, ip_addr);
|
if (len >= addr_size) {
|
||||||
|
len = addr_size - 1;
|
||||||
|
}
|
||||||
|
memcpy(ipv6_bind_addr, ip_addr, len);
|
||||||
|
*(ipv6_bind_addr + len) = '\0';
|
||||||
} else {
|
} else {
|
||||||
snprintf(ipv4_bind_addr, addr_size, "%s", ip_addr);
|
fc_strlcpy(ipv4_bind_addr, ip_addr, addr_size);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1046,6 +1052,8 @@ int sf_load_data_path_config_ex(IniFullContext *ini_ctx,
|
||||||
const char *item_name, const char *default_value, string_t *path)
|
const char *item_name, const char *default_value, string_t *path)
|
||||||
{
|
{
|
||||||
const char *data_path;
|
const char *data_path;
|
||||||
|
int data_path_len;
|
||||||
|
int path_size;
|
||||||
|
|
||||||
data_path = iniGetStrValue(ini_ctx->section_name,
|
data_path = iniGetStrValue(ini_ctx->section_name,
|
||||||
item_name, ini_ctx->context);
|
item_name, ini_ctx->context);
|
||||||
|
|
@ -1061,20 +1069,23 @@ int sf_load_data_path_config_ex(IniFullContext *ini_ctx,
|
||||||
return EINVAL;
|
return EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
data_path_len = strlen(data_path);
|
||||||
if (*data_path == '/') {
|
if (*data_path == '/') {
|
||||||
path->len = strlen(data_path);
|
path->len = data_path_len;
|
||||||
path->str = fc_strdup1(data_path, path->len);
|
path->str = fc_strdup1(data_path, path->len);
|
||||||
if (path->str == NULL) {
|
if (path->str == NULL) {
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
path->len = strlen(SF_G_BASE_PATH_STR) + strlen(data_path) + 1;
|
path_size = SF_G_BASE_PATH_LEN + data_path_len + 2;
|
||||||
path->str = (char *)fc_malloc(path->len + 1);
|
path->str = (char *)fc_malloc(path_size);
|
||||||
if (path->str == NULL) {
|
if (path->str == NULL) {
|
||||||
return ENOMEM;
|
return ENOMEM;
|
||||||
}
|
}
|
||||||
path->len = sprintf(path->str, "%s/%s",
|
|
||||||
SF_G_BASE_PATH_STR, data_path);
|
path->len = fc_get_full_filepath_ex(SF_G_BASE_PATH_STR,
|
||||||
|
SF_G_BASE_PATH_LEN, data_path, data_path_len,
|
||||||
|
path->str, path_size);
|
||||||
}
|
}
|
||||||
chopPath(path->str);
|
chopPath(path->str);
|
||||||
path->len = strlen(path->str);
|
path->len = strlen(path->str);
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ typedef struct sf_connection_stat {
|
||||||
typedef struct sf_global_variables {
|
typedef struct sf_global_variables {
|
||||||
struct {
|
struct {
|
||||||
char str[MAX_PATH_SIZE];
|
char str[MAX_PATH_SIZE];
|
||||||
|
int len;
|
||||||
bool inited;
|
bool inited;
|
||||||
bool created;
|
bool created;
|
||||||
} base_path;
|
} base_path;
|
||||||
|
|
@ -79,6 +80,7 @@ extern SFGlobalVariables g_sf_global_vars;
|
||||||
extern SFContext g_sf_context;
|
extern SFContext g_sf_context;
|
||||||
|
|
||||||
#define SF_G_BASE_PATH_STR g_sf_global_vars.base_path.str
|
#define SF_G_BASE_PATH_STR g_sf_global_vars.base_path.str
|
||||||
|
#define SF_G_BASE_PATH_LEN g_sf_global_vars.base_path.len
|
||||||
#define SF_G_BASE_PATH_INITED g_sf_global_vars.base_path.inited
|
#define SF_G_BASE_PATH_INITED g_sf_global_vars.base_path.inited
|
||||||
#define SF_G_BASE_PATH_CREATED g_sf_global_vars.base_path.created
|
#define SF_G_BASE_PATH_CREATED g_sf_global_vars.base_path.created
|
||||||
#define SF_G_CONTINUE_FLAG g_sf_global_vars.continue_flag
|
#define SF_G_CONTINUE_FLAG g_sf_global_vars.continue_flag
|
||||||
|
|
@ -317,8 +319,8 @@ static inline void sf_set_global_base_path(const char *base_path)
|
||||||
string_t path_string;
|
string_t path_string;
|
||||||
|
|
||||||
FC_SET_STRING(path_string, (char *)base_path);
|
FC_SET_STRING(path_string, (char *)base_path);
|
||||||
normalize_path(NULL, &path_string, SF_G_BASE_PATH_STR,
|
SF_G_BASE_PATH_LEN = normalize_path(NULL, &path_string,
|
||||||
sizeof(SF_G_BASE_PATH_STR));
|
SF_G_BASE_PATH_STR, sizeof(SF_G_BASE_PATH_STR));
|
||||||
SF_G_BASE_PATH_INITED = true;
|
SF_G_BASE_PATH_INITED = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@ void sf_ordered_writer_finish(SFOrderedWriterContext *ctx)
|
||||||
{
|
{
|
||||||
int count;
|
int count;
|
||||||
|
|
||||||
if (ctx->writer.fw.file.name != NULL) {
|
if (ctx->writer.fw.file.name.str != NULL) {
|
||||||
fc_queue_terminate(&ctx->thread.queues.version);
|
fc_queue_terminate(&ctx->thread.queues.version);
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
|
|
@ -120,8 +120,8 @@ void sf_ordered_writer_finish(SFOrderedWriterContext *ctx)
|
||||||
__LINE__, ctx->writer.fw.cfg.subdir_name);
|
__LINE__, ctx->writer.fw.cfg.subdir_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
free(ctx->writer.fw.file.name);
|
free(ctx->writer.fw.file.name.str);
|
||||||
ctx->writer.fw.file.name = NULL;
|
ctx->writer.fw.file.name.str = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ctx->writer.fw.file.fd >= 0) {
|
if (ctx->writer.fw.file.fd >= 0) {
|
||||||
|
|
|
||||||
|
|
@ -115,7 +115,7 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name,
|
||||||
pthread_t tid;
|
pthread_t tid;
|
||||||
pthread_attr_t thread_attr;
|
pthread_attr_t thread_attr;
|
||||||
|
|
||||||
snprintf(sf_context->name, sizeof(sf_context->name), "%s", name);
|
fc_safe_strcpy(sf_context->name, name);
|
||||||
sf_context->connect_need_log = true;
|
sf_context->connect_need_log = true;
|
||||||
sf_context->realloc_task_buffer = sf_context->net_buffer_cfg.
|
sf_context->realloc_task_buffer = sf_context->net_buffer_cfg.
|
||||||
min_buff_size < sf_context->net_buffer_cfg.max_buff_size;
|
min_buff_size < sf_context->net_buffer_cfg.max_buff_size;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue