diff options
author | Peng Huang <shawn.p.huang@gmail.com> | 2010-11-24 16:53:36 +0900 |
---|---|---|
committer | Peng Huang <shawn.p.huang@gmail.com> | 2010-11-24 16:53:36 +0900 |
commit | 15b9b66b013ee83974b3ae16a76983cc10e9dbe8 (patch) | |
tree | d03747c64f5d2c8b3faff77ebc42f43ed6f1be2b /src/PYMain.cc | |
parent | f067b7a651cf24f7234441a31c0f88191cb74a42 (diff) | |
download | ibus-libpinyin-15b9b66b013ee83974b3ae16a76983cc10e9dbe8.tar.gz ibus-libpinyin-15b9b66b013ee83974b3ae16a76983cc10e9dbe8.tar.xz ibus-libpinyin-15b9b66b013ee83974b3ae16a76983cc10e9dbe8.zip |
Use in memory user database to improve performance.
I found pinyin's performance is very low when system IO load is big. So
I let pinyin use im memory user database to improve the performance, and
write the database to the harddisk in 60 seconds or when engine exits.
BUG=none
TEST=manual
Review URL: http://codereview.appspot.com/3303041
Diffstat (limited to 'src/PYMain.cc')
-rw-r--r-- | src/PYMain.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/PYMain.cc b/src/PYMain.cc index 463ec2f..021201f 100644 --- a/src/PYMain.cc +++ b/src/PYMain.cc @@ -131,6 +131,21 @@ start_component (void) ibus_main (); } +#include <signal.h> + +static void +sigterm_cb (int sig) +{ + PY::Database::finalize (); + ::exit (EXIT_FAILURE); +} + +static void +atexit_cb (void) +{ + PY::Database::finalize (); +} + int main (gint argc, gchar **argv) { @@ -148,6 +163,10 @@ main (gint argc, gchar **argv) exit (-1); } + ::signal (SIGTERM, sigterm_cb); + ::signal (SIGINT, sigterm_cb); + g_atexit (atexit_cb); + start_component (); return 0; } |