Merged revisions 45031 via svnmerge from
authorJoshua Colp <jcolp@digium.com>
Fri, 13 Oct 2006 15:56:17 +0000 (15:56 +0000)
committerJoshua Colp <jcolp@digium.com>
Fri, 13 Oct 2006 15:56:17 +0000 (15:56 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r45031 | file | 2006-10-13 11:53:22 -0400 (Fri, 13 Oct 2006) | 10 lines

Merged revisions 45030 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r45030 | file | 2006-10-13 11:49:53 -0400 (Fri, 13 Oct 2006) | 2 lines

Pass the right value to usleep for sleeping, and always add the background refresh item back into the scheduler if enabled since it is deleted during reload. (issue #8142 reported by p_lindheimer)

........

................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45032 65c4cc65-6c06-0410-ace0-fbb531ad65f3

main/dnsmgr.c

index 3f370e0..e7ce319 100644 (file)
@@ -212,7 +212,7 @@ static void *do_refresh(void *data)
 {
        for (;;) {
                pthread_testcancel();
-               usleep(ast_sched_wait(sched));
+               usleep((ast_sched_wait(sched)*1000));
                pthread_testcancel();
                ast_sched_runq(sched);
        }
@@ -389,16 +389,16 @@ static int do_reload(int loading)
 
        /* if this reload enabled the manager, create the background thread
           if it does not exist */
-       if (enabled && !was_enabled && (refresh_thread == AST_PTHREADT_NULL)) {
-               if (ast_pthread_create_background(&refresh_thread, NULL, do_refresh, NULL) < 0) {
-                       ast_log(LOG_ERROR, "Unable to start refresh thread.\n");
-               }
-               else {
+       if (enabled) {
+               if (!was_enabled && (refresh_thread == AST_PTHREADT_NULL)) {
+                       if (ast_pthread_create_background(&refresh_thread, NULL, do_refresh, NULL) < 0) {
+                               ast_log(LOG_ERROR, "Unable to start refresh thread.\n");
+                       }
                        ast_cli_register(&cli_refresh);
-                       /* make a background refresh happen right away */
-                       refresh_sched = ast_sched_add_variable(sched, 100, refresh_list, &master_refresh_info, 1);
-                       res = 0;
                }
+               /* make a background refresh happen right away */
+               refresh_sched = ast_sched_add_variable(sched, 100, refresh_list, &master_refresh_info, 1);
+               res = 0;
        }
        /* if this reload disabled the manager and there is a background thread,
           kill it */