| 199 |
|
|
| 200 |
if (trie_dict_init(VAR_TRIE_DICT_SHM, TRIE_NODE_PER_POOL) < 0) |
if (trie_dict_init(VAR_TRIE_DICT_SHM, TRIE_NODE_PER_POOL) < 0) |
| 201 |
{ |
{ |
| 202 |
printf("trie_dict_init failed\n"); |
printf("trie_dict_init(%s, %d) error\n", VAR_TRIE_DICT_SHM, TRIE_NODE_PER_POOL); |
| 203 |
goto cleanup; |
goto cleanup; |
| 204 |
} |
} |
| 205 |
if (article_block_init(VAR_ARTICLE_BLOCK_SHM, BBS_article_limit_per_section * BBS_max_section / ARTICLE_PER_BLOCK) < 0) |
if (article_block_init(VAR_ARTICLE_BLOCK_SHM, BBS_article_limit_per_section * BBS_max_section / ARTICLE_PER_BLOCK) < 0) |
| 247 |
} |
} |
| 248 |
|
|
| 249 |
// Load user_list and online_user_list |
// Load user_list and online_user_list |
| 250 |
if (user_list_pool_init() < 0) |
if (user_list_pool_init(VAR_USER_LIST_SHM) < 0) |
| 251 |
{ |
{ |
| 252 |
log_error("user_list_pool_init() error\n"); |
log_error("user_list_pool_init(%s) error\n", VAR_USER_LIST_SHM); |
| 253 |
goto cleanup; |
goto cleanup; |
| 254 |
} |
} |
| 255 |
if (user_list_pool_reload(0) < 0) |
if (user_list_pool_reload(0) < 0) |
| 287 |
|
|
| 288 |
log_common("Initially load %d articles, last_aid = %d\n", article_block_article_count(), article_block_last_aid()); |
log_common("Initially load %d articles, last_aid = %d\n", article_block_article_count(), article_block_last_aid()); |
| 289 |
|
|
| 290 |
|
if ((ret = user_stat_update()) < 0) |
| 291 |
|
{ |
| 292 |
|
log_error("user_stat_update() error\n"); |
| 293 |
|
goto cleanup; |
| 294 |
|
} |
| 295 |
|
|
| 296 |
// Set signal handler |
// Set signal handler |
| 297 |
act.sa_handler = sig_hup_handler; |
act.sa_handler = sig_hup_handler; |
| 298 |
if (sigaction(SIGHUP, &act, NULL) == -1) |
if (sigaction(SIGHUP, &act, NULL) == -1) |