| 16 |
|
|
| 17 |
#include "section_list_loader.h" |
#include "section_list_loader.h" |
| 18 |
#include "article_cache.h" |
#include "article_cache.h" |
| 19 |
|
#include "bbs.h" |
| 20 |
#include "log.h" |
#include "log.h" |
| 21 |
#include "database.h" |
#include "database.h" |
| 22 |
#include "menu.h" |
#include "menu.h" |
| 31 |
#define _POSIX_C_SOURCE 200809L |
#define _POSIX_C_SOURCE 200809L |
| 32 |
#include <string.h> |
#include <string.h> |
| 33 |
|
|
|
#define SECTION_LIST_LOAD_INTERVAL 10 // second |
|
|
|
|
| 34 |
int section_list_loader_pid; |
int section_list_loader_pid; |
| 35 |
int last_article_op_log_mid; |
int last_article_op_log_mid; |
| 36 |
|
|
| 635 |
{ |
{ |
| 636 |
SYS_child_process_count++; |
SYS_child_process_count++; |
| 637 |
section_list_loader_pid = pid; |
section_list_loader_pid = pid; |
| 638 |
log_std("Section list loader process (%d) start\n", pid); |
log_common("Section list loader process (pid = %d) start\n", pid); |
| 639 |
return 0; |
return 0; |
| 640 |
} |
} |
| 641 |
else if (pid < 0) // Error |
else if (pid < 0) // Error |
| 691 |
load_count = article_block_article_count() - article_count; |
load_count = article_block_article_count() - article_count; |
| 692 |
if (load_count > 0) |
if (load_count > 0) |
| 693 |
{ |
{ |
| 694 |
log_std("Incrementally load %d articles, last_aid = %d\n", load_count, article_block_last_aid()); |
log_common("Incrementally load %d articles, last_aid = %d\n", load_count, article_block_last_aid()); |
| 695 |
} |
} |
| 696 |
|
|
| 697 |
if (SYS_section_list_reload) |
if (SYS_section_list_reload) |
| 717 |
|
|
| 718 |
if (last_article_op_log_mid > last_mid) |
if (last_article_op_log_mid > last_mid) |
| 719 |
{ |
{ |
| 720 |
log_std("Proceeded %d article logs, last_mid = %d\n", last_article_op_log_mid - last_mid, last_article_op_log_mid); |
log_common("Proceeded %d article logs, last_mid = %d\n", last_article_op_log_mid - last_mid, last_article_op_log_mid); |
| 721 |
} |
} |
| 722 |
|
|
| 723 |
if (SYS_section_list_reload) |
if (SYS_section_list_reload) |
| 725 |
continue; |
continue; |
| 726 |
} |
} |
| 727 |
|
|
| 728 |
for (i = 0; i < SECTION_LIST_LOAD_INTERVAL && !SYS_server_exit && !SYS_section_list_reload; i++) |
for (i = 0; i < BBS_section_list_load_interval && !SYS_server_exit && !SYS_section_list_reload; i++) |
| 729 |
{ |
{ |
| 730 |
sleep(1); |
sleep(1); |
| 731 |
} |
} |
| 738 |
detach_article_block_shm(); |
detach_article_block_shm(); |
| 739 |
detach_trie_dict_shm(); |
detach_trie_dict_shm(); |
| 740 |
|
|
| 741 |
log_std("Section list loader process exit normally\n"); |
log_common("Section list loader process exit normally\n"); |
| 742 |
log_end(); |
log_end(); |
| 743 |
|
|
| 744 |
section_list_loader_pid = 0; |
section_list_loader_pid = 0; |